- CPU·storage·networking·memory के विपरीत, GPU अभी तक प्रचुर संसाधन के रूप में virtualized नहीं हो पाया है, और Thunder Compute इसे system layer पर हल करना चाहता है
- सप्लाई बढ़ाने का फोकस सिर्फ ज़्यादा chips बनाने पर नहीं, बल्कि पहले से deployed GPU का बेहतर उपयोग कराने वाले software utilization पर भी है
- मौजूदा optimization जहाँ inference batching या training job queueing जैसे workload layer तक सीमित रहे हैं, वहीं GPU virtualization अपेक्षाकृत कम संबोधित किए गए system क्षेत्र को लक्ष्य बनाता है
- NVIDIA H100 को प्रति घंटा $1.38 से VS Code, CLI और browser में इस्तेमाल किया जा सकता है, और यह AWS की तुलना में 80% बचत, कोई contract नहीं, कोई egress fee नहीं और scalable storage को आगे रखता है
- 4 साल तक stealth mode में research prototype बनाया गया, और कंपनी अपने cloud व enterprise partners के ज़रिए datacenter की GPU capacity improvement deploy करना चाहती है
GPU virtualization से कम utilization rate में सुधार
- Thunder Compute का मानना है कि computing के कई scarce resources आखिरकार abundant हो गए, लेकिन GPU ने अभी वैसा transition नहीं किया है
- GPU को abundant बनाने का तरीका सिर्फ अधिक chips बनाना नहीं है; यह पहले से deployed chips का बेहतर उपयोग कराने वाले software पर भी निर्भर करता है
- फिलहाल GPU अक्सर पूरी तरह उपयोग नहीं होते, और मौजूदा solutions मुख्यतः workload layer पर केंद्रित हैं
- inference requests को batch process करना
- कई server fleets में training jobs को queue करना
- CPU, storage, networking और memory में virtualization आम हो चुका है, लेकिन GPU में अभी वही स्तर का virtualization स्थापित नहीं हुआ है
- इसी खाली क्षेत्र को system layer पर संबोधित करना Thunder Compute का मुख्य approach है
Product approach और deployment plan
- Thunder Compute एक system lab है जिसका commercial focus है, और यह नवीनतम GPU virtualization research को production environments में लागू करना चाहता है
- टीम खुद को Citadel Securities, Aquatic और AWS से आए infrastructure experts व systems researchers से बनी बताती है
- 4 साल तक stealth mode में research prototype बनाया गया, और अब नतीजों को अपने cloud और enterprise partners के ज़रिए deploy किया जा रहा है
- Product description के अनुसार NVIDIA H100 प्रति घंटा $1.38 से इस्तेमाल के लिए उपलब्ध है
- VS Code, CLI और browser से access किया जा सकता है
- AWS की तुलना में 80% बचत को आगे रखता है
- कोई contract नहीं, कोई egress fee नहीं, और scalable storage प्रदान करता है
- लक्ष्य datacenter GPU capacity को चरणबद्ध तरीके से बेहतर बनाना है
1 टिप्पणियां
Hacker News पर राय
काफ़ी दिलचस्प। पहले मुझे सिर्फ़ वीडियो ट्रांसकोडिंग के लिए GPU-over-IP की ज़रूरत पड़ी थी
मेरे homelab server में कमजोर परफॉर्मेंस वाला AMD GPU था, जो हर बार वीडियो encoding की कोशिश करने पर kernel crash कर देता था, और gaming PC में NVIDIA RTX 3080 था। इसलिए मैंने https://github.com/steelbrain/ffmpeg-over-ip बनाया और Windows machine पर server, media server (Plex, Emby, Jellyfin वगैरह) पर client चलाया, तो यह बिल्कुल सही चला
https://gist.github.com/tzmartin/88abb7ef63e41e27c2ec9a5ce5d...
https://news.ycombinator.com/showhn.html
https://news.ycombinator.com/item?id=22336638
वीडियो encoding के अलावा GPU-over-network कहाँ काम आ सकता है, यह भी जानने की जिज्ञासा है। latency बढ़ने पर machine learning या graphics-heavy workloads मुश्किल नहीं हो जाएंगे क्या?
अगर यह CPU/GPU boundary पर काम करता है, तो जो datasets VRAM में फिट नहीं होते, उनमें बहुत बड़ा I/O bottleneck नहीं बनता क्या? इसे लेकर थोड़ा भ्रम है
हो सकता है मैंने इसके काम करने का तरीका गलत समझा हो, लेकिन अगर GPU I/O को intercept किया जा रहा है, तो हर epoch में पूरा dataset remote machine पर stream करना पड़ेगा, जो wasteful लगता है
BERT inference performance यहाँ देख सकते हैं: https://youtu.be/qsOBFQZtsFM?t=69
training में inference से ज़्यादा overhead है, और native performance के करीब पहुँचने के लिए हम additional optimizations implement कर रहे हैं
जो लोग जानना चाहते हैं कि यह असल में कैसे काम करता है, उन्हें देखकर लगता है कि यह process में library inject करके इन functions[1] को hook करता है और फिर service को forward करता है
[1] https://pastebin.com/raw/kCYmXr5A
ld/lddका कोई flag होगा जो बताता है कि कौन-से symbols re-bind हो रहे हैंसाथ ही मुझे लगता था कि symbol re-bind होने के लिए weak symbol होना चाहिए, लेकिन NVIDIA weak symbols expose नहीं करेगा, तो क्या इसका मतलब है कि यह मूल रूप से LD_PRELOAD तरीका है?
दिलचस्प है, लेकिन मेरी ज़्यादा दिलचस्पी self-hosting में है। मेरे पास पहले से बहुत सारे GPU हैं, कुछ चल रहे हैं और कुछ idle पड़े हैं
जानना चाहता हूँ कि क्या मौजूदा GPU इस्तेमाल करने के लिए self-hosting option है
efficient job scheduling, GPU sharing और ease of use जैसे फायदे self-hosted environment में भी सीधे लागू होंगे। आगे इस संभावना के लिए हम पूरी तरह खुले हैं
बात समझ नहीं आ रही। ECS में जिस GPU instance की ज़रूरत है, उसे सीधे launch किया जा सकता है, तो ECS में instance launch करके आपके GPU को ECS में इस्तेमाल करने की ज़रूरत क्यों होगी?
अलग से, असली Nitro के बजाय आधा-अधूरा Nitro क्यों इस्तेमाल करना चाहूँगा, यह भी समझ नहीं आता
अगर आप लगातार GPU-requiring development कर रहे हैं, तो आमतौर पर instance जितनी देर on रहता है, पूरी अवधि का भुगतान करना पड़ता है। Thunder इस्तेमाल करने पर आप सिर्फ़ उतनी देर GPU के लिए pay करते हैं जब वह सच में इस्तेमाल हो रहा हो। जब सिर्फ़ CPU code चल रहा हो, तब GPU time का खर्च नहीं लगता। विकल्प है instance को manually on/off करना, लेकिन यह झंझट भरा हो सकता है
साथ ही आप जिस प्रकार और जितनी संख्या के GPU इस्तेमाल कर रहे हैं, उसे आसानी से scale कर सकते हैं। उदाहरण के लिए अगर आप सस्ते T4 instance पर develop कर रहे हैं और 8 A100 पर पूरा deep learning training job चलाना चाहते हैं, तो instance बदलने और environment फिर से setup करने की ज़रूरत नहीं; एक command चलाकर सीधे ज़्यादा powerful GPU पर चला सकते हैं
GPU के बिना develop करते हुए simulation चलाते समय अचानक GPU attach कर सकते हैं, और यह AWS से काफी सस्ता लगता है। मूल रूप से यह Ray(https://www.ray.io/) जिस problem को solve करता है, उसे ज्यादा general-purpose तरीके से solve करता दिखता है। आधे GPU जैसी ज्यादा granular GPU sharing भी संभव हो सकती है, इसलिए बहुत उत्साह है
यहाँ काफी interest है, इसलिए हमने T4 instances free में खोलने का फैसला किया है। खुद इस्तेमाल करके अपने विचार बताएं
बढ़िया। जिज्ञासा है कि क्या इसे MIG या vGPU के साथ भी चलाया जा सकता था
निकट भविष्य के major goals में से एक GPU sharing allow करना है। हम users को memory के किसी हिस्से तक limit नहीं करेंगे, बल्कि पूरा GPU memory इस्तेमाल करने देंगे, इसलिए यह MIG या vGPU से बेहतर हो सकता है
meaningful throughput के साथ real-world use में यह कैसा लगता है, जानना चाहता हूँ। क्या इसे hash cracking के लिए भी इस्तेमाल कर सकते हैं?
network के पार virtual GPU के बारे में सोचते ही botnet याद आता है। खासकर https://www.hpcwire.com/2012/12/06/gpu_monster_shreds_passwo... का वह हिस्सा याद आता है: “Gosney को पहले Mosix के co-founder Professor Amnon Barak को यह convince करना पड़ा कि वह ‘दुनिया को एक विशाल botnet में बदलने की कोशिश नहीं कर रहे’”
यह technology data center के अंदर बहुत flexible clusters बनाने की दिशा में रोचक applications दे सकती है, और हम वही explore कर रहे हैं
glx विकसित करने वाले मूल SGI engineers ने GPU transfer के लिए X11 mechanisms इस्तेमाल करने को बहुत सावधानी से design किया था, इसलिए GL stream को network पर भेजकर मेरी graphics card पर render करना काफी आसान था
मतलब “hallway के अंत में supercomputer पर run करो और workstation पर render करो” जैसा। हाल के driver development में ऐसी consideration नहीं दिखती, इसलिए आम तौर पर यह अब संभव नहीं है। यह वास्तव में कितना उपयोगी था, पता नहीं। आमतौर पर अगर आपके पास अच्छा graphics card था तो CPU भी अच्छा होता था। फिर भी इसके साथ खेलने में मज़ा आता था, और machine room में चल रहे program को accelerated graphics मिलना अजीब तरह से आकर्षक था। एक बार मैं इस तरह glquake चलाने में सफल हुआ था
यह संभव है, यही impressive है, लेकिन सोचता हूँ कि network connection टूट जाए या 100% stable न हो तो क्या होगा
अनुभव से देखा है कि driver local GPU के थोड़ा भी अजीब behave करने पर खराब प्रतिक्रिया देते हैं