- Stable Diffusion WebGPU डेमो चलाने के लिए Chrome के नवीनतम संस्करण में "Experimental WebAssembly" और "Experimental WebAssembly JavaScript Promise Integration (JSPI)" फ्लैग सक्षम होने चाहिए।
- डेमो के हर inference step में लगभग 1 मिनट लगता है, और इमेज जनरेट करने के लिए VAE decoder चलाने में अतिरिक्त लगभग 10 सेकंड लगते हैं।
- DevTools खुला होने पर डेमो लगभग 2 गुना धीमा हो जाता है।
- डेमो में इस्तेमाल होने वाला UNET मॉडल केवल CPU पर चलता है, और ब्राउज़र टैब फ्रीज़ हो सकता है, लेकिन यह GPU पर चलाने की तुलना में 10% तेज़ है।
- डेमो में स्वीकार्य परिणाम पाने के लिए न्यूनतम step count 20 है। हालांकि, डेमो उद्देश्य के लिए 3 steps पर्याप्त हैं।
- मॉडल फ़ाइलें cache हो जाती हैं, इसलिए हर बार डेमो चलाने पर उन्हें दोबारा डाउनलोड करने की ज़रूरत नहीं होती।
- अगर "protobuf parsing failed" त्रुटि आती है, तो DevTools में Application -> Storage पर जाकर site data साफ़ किया जा सकता है।
- अगर "sbox_fatal_memory_exceeded" त्रुटि आती है, तो इसका मतलब है कि डेमो चलाने के लिए पर्याप्त RAM नहीं है। आप टैब या ब्राउज़र को फिर से reload करके देख सकते हैं।
- यह डेमो StableDiffusionPipeline को Python से JS में पोर्ट करके, और onnxruntime तथा emscripten+binaryen को patch करके संभव हुआ, ताकि 4GB से अधिक memory allocate और उपयोग की जा सके।
- अभी डेमो multi-threading को support नहीं करता और केवल एक CPU core का उपयोग करता है, इसलिए यह धीमा है। WebAssembly.Memory constructor के जरिए 64-bit memory support की कमी भी एक सीमा है।
- डेमो GPU पर चलता है, लेकिन webgpu और onnxruntime अभी शुरुआती चरण में हैं, इसलिए बहुत-सा काम अभी लागू नहीं हुआ है। डेटा JS के जरिए लगातार GPU और CPU के बीच ट्रांसफ़र होता रहता है, जिससे processing धीमी हो जाती है। जैसे-जैसे और कामों के लिए JS kernel उपलब्ध होंगे, डेमो और तेज़ होगा।
- GitHub पर उपलब्ध code का उपयोग करके डेमो को local में चलाया जा सकता है।
- patched onnxruntime का उपयोग करके transformers.js के साथ बड़े LLMs चलाए जा सकते हैं, लेकिन यह 8GB memory तक सीमित है। इस पैकेज का उपयोग करके अधिकतम लगभग 4GB weights लोड किए जा सकते हैं।
- लेखक को पहले node.js bindings में GPU acceleration जोड़ने का अनुभव है, इसलिए वह onnxruntime repository में pull request भेजने की योजना बना रहे हैं।
1 टिप्पणियां
Hacker News राय