6 पॉइंट द्वारा GN⁺ 2024-02-13 | 2 टिप्पणियां | WhatsApp पर शेयर करें

AMD ने ROCm-आधारित CUDA implementation को चुपचाप समर्थन दिया, अब इसे open source के रूप में जारी किया गया

  • AMD कई वर्षों से इस दिशा में काम कर रहा था कि डेवलपर्स NVIDIA के CUDA API को लक्षित करने वाले codebase को HIP/ROCm पर चला सकें.
  • इन प्रयासों के बावजूद, यदि लक्ष्य सर्वोत्तम performance पाना हो, तो यह कोई अच्छा (सरल, त्वरित और performance-गारंटीड) समाधान नहीं था.
  • पिछले 2 वर्षों से AMD चुपचाप एक ऐसे project को समर्थन दे रहा था जो library स्तर पर binary compatibility देता है, ताकि कई NVIDIA CUDA applications source code में बदलाव किए बिना AMD ROCm stack पर चल सकें.

ZLUDA: Intel graphics के लिए CUDA support

  • कुछ वर्ष पहले ZLUDA नाम का एक project Intel graphics पर CUDA support देने के लिए शुरू किया गया था, लेकिन व्यक्तिगत कारणों से इसे रोक दिया गया.
  • ZLUDA developer Andrzej Janik को 2022 में AMD से AMD GPU पर HIP/ROCm का उपयोग करते हुए ZLUDA लागू करने के लिए contract मिला.
  • Janik ने पिछले 2 वर्षों में Radeon GPU पर ZLUDA implement किया, जिससे बहुत-सा CUDA software बिना किसी modification के HIP/ROCm पर चल सके.

ZLUDA का open source release

  • AMD ने इस वर्ष इस project के लिए funding बंद कर दी और इसे software product के रूप में जारी न करने का निर्णय लिया.
  • लेकिन contract समाप्त होने पर Janik को इस काम को open source के रूप में जारी करने की अनुमति देने वाला एक प्रावधान था.
  • Janik ने इस नए ZLUDA implementation को test और benchmark करने के लिए access उपलब्ध कराया.

ZLUDA implementation की सीमाएँ और open source code

  • ZLUDA implementation 100% सुरक्षित नहीं है; उदाहरण के लिए NVIDIA OptiX support पूरा नहीं है, और जो software PTX assembly code का उपयोग नहीं करता, उसे फिलहाल संभाला नहीं जाता.
  • अधिकांश मामलों में, यह implementation एक ही developer के प्रयास से आश्चर्यजनक रूप से सक्षम है.
  • open source code को Apache 2.0 या MIT license के तहत dual-license किया गया है.
  • इस Radeon implementation के लिए Rust programming language का उपयोग किया गया है.

GN⁺ की राय

  • यह लेख उस project का परिचय देता है जिसे AMD ने CUDA compatibility प्रदान करने के लिए चुपचाप समर्थन दिया, और यह open source community के लिए बड़ा योगदान बन सकता है.
  • ZLUDA एक महत्वपूर्ण प्रगति है, जो डेवलपर्स को source code बदले बिना AMD platform पर CUDA applications चलाने में सक्षम बनाती है.
  • ऐसे प्रयास AMD GPU users को व्यापक software ecosystem तक पहुँचने का अवसर देते हैं, और खासकर Rust जैसी आधुनिक programming language का उपयोग दिलचस्प है.

2 टिप्पणियां

 
bbulbum 2024-02-13

Nvidia की F***!

 
GN⁺ 2024-02-13
Hacker News राय
  • AMD ने फंडिंग बंद की, जिसके परिणामस्वरूप ZLUDA सार्वजनिक कर दिया गया

    • 2 साल के विकास के बाद AMD ने तय किया कि AMD GPU पर CUDA applications चलाना business case नहीं है.
    • अनुबंध की शर्तों के अनुसार, अगर AMD को लगे कि आगे का विकास उपयुक्त नहीं है, तो ZLUDA को सार्वजनिक किया जा सकता है.
  • CUDA Dark API का उल्लेख

    • CUDA Dark API undocumented functions से बना है, और इन functions की सटीक संख्या ज्ञात नहीं है.
    • सामान्य applications आमतौर पर सबसे सामान्य एक या दो functions का उपयोग करती हैं.
    • इन functions के नाम या argument types ज्ञात नहीं होते, इसलिए implementation में काफी समय लगता है.
    • ZLUDA ने applications को इन्हें इस्तेमाल करते हुए देखने के बाद case-by-case आधार पर reverse engineering और implementation किया.
  • AMD द्वारा CUDA के एकाधिकार को तोड़ने के प्रयास के समर्थन में राय

    • translation layer का फायदा यह है कि यह तुरंत hardware को अधिक viable बना सकता है और adoption को बढ़ावा दे सकता है.
    • लेकिन यह जोखिम भी है कि developers ROCm को support नहीं करेंगे और केवल translation layer का उपयोग करेंगे.
    • Proton+DXVK ने Linux gaming पर सकारात्मक प्रभाव डाला, लेकिन GPU computing performance निकालने के लिए specific architecture के अनुसार tuning की आवश्यकता होती है.
    • AMD को बाजार में प्रतिस्पर्धी बने रहने के लिए कुछ करना होगा.
  • AMD GPU पर Stable Diffusion चलाने की कोशिश और उसकी कठिनाइयों पर एक अनुभव

    • ROCm install हो गया और GPU भी पहचान लिया गया, लेकिन ML ecosystem के Nvidia-केंद्रित होने के कारण PyTorch आदि install करना मुश्किल था.
    • अंततः model load हो गया, लेकिन software ने graphics session crash करने से पहले एक भी image generate नहीं की.
    • इस अनुभव के कारण फिर से Nvidia GPU खरीदने की इच्छा हुई.
  • Blender ने OpenCL छोड़कर CUDA backend अपनाने के कुछ साल बाद Radeon HIP backend जोड़ा, लेकिन ZLUDA + CUDA backend का उपयोग Radeon HIP backend की तुलना में थोड़ा तेज़ पाया गया.

  • AMD द्वारा इस project की funding रोकना एक समझ से परे निर्णय लगता है.

    • CUDA-on-ROCm, NVIDIA के एकाधिकार को तोड़ सकता है और NVIDIA को CUDA में बदलाव करने से रोकने वाली शक्ति बन सकता है.
    • जब आप बाजार में नंबर 1 नहीं हैं, तो वास्तविक value competition के लिए de facto standard का पालन करना चाहिए और सच में खुले standards बनाने और अपनाने चाहिए.
  • Nvidia द्वारा kernel की GPL license driver check को bypass करने की खबर से जुड़ा एक सवाल

    • खबर थी कि kernel 6.6 में अगर Nvidia इसे ठीक नहीं करता तो driver को block कर दिया जाएगा, लेकिन Nvidia की ओर से कोई प्रतिक्रिया नहीं आई.
    • अभी kernel 6.7.4 इस्तेमाल हो रहा है, और इस बात पर उलझन भरी जानकारी है कि Nvidia ने समस्या ठीक की या block को टाल दिया गया.
  • जो लोग AMD के ROCm/HIP stack को सीधे compile करना चाहते हैं, उनके लिए एक guide Phoronix लेख में परिचित कराया गया है.

  • ROCm की आधिकारिक documentation की तुलना में Github पर बेहतर व्याख्या मिलती है, और यह branding के महत्व को रेखांकित करता है कि AMD बाजार में प्रतिस्पर्धात्मकता क्यों खोता है.

  • एक राय है कि AMD को इस project पर और अधिक teams लगानी चाहिए.