- SCALE एक GPGPU प्रोग्रामिंग टूलकिट है जो CUDA applications को AMD GPU के लिए native compile करने में सक्षम बनाता है
- CUDA प्रोग्राम या build system में बदलाव करने की ज़रूरत नहीं है, और अधिक GPU vendors तथा CUDA API support पर काम चल रहा है
यह कैसे काम करता है?
- अन्य cross-platform GPGPU solutions की तुलना में SCALE में कुछ प्रमुख innovations हैं
- यह CUDA प्रोग्राम्स को ज्यों का त्यों स्वीकार करता है। उन्हें किसी दूसरी language में port करने की ज़रूरत नहीं होती। यह उन मामलों में भी सही है जहाँ प्रोग्राम inline PTX
asm का उपयोग करते हैं
- SCALE compiler
nvcc जैसी ही command-line options और CUDA dialect को स्वीकार करता है, इसलिए यह drop-in replacement की तरह काम करता है
- यह NVIDIA CUDA Toolkit installation का "रूप धारण" करता है ताकि मौजूदा build tools और scripts बिना बदलाव के काम करें
किन projects का परीक्षण किया गया है?
- SCALE को validate करने के लिए open source CUDA projects को compile किया गया और tests चलाए गए
- फिलहाल निम्न open source projects nightly automated testing में शामिल हैं और पूरी तरह pass हुए हैं
- NVIDIA Thrust, Blender Cycles, AMGX, llama-cpp, faiss, xgboost, GOMC, stdgpu, hashcat
कौन से GPU supported हैं?
- निम्न GPU targets supported हैं और Nightly tests में शामिल हैं
- AMD
gfx1030 (Navi 21, RDNA 2.0)
- AMD
gfx1100 (Navi 31, RDNA 3.0)
- निम्न GPU targets का अस्थायी manual testing किया गया है और वे "काम करते हुए लगते हैं"
- निम्न GPU support पर काम चल रहा है
- AMD
gfx900 (Vega 10, GCN 5.0)
- यदि आप किसी विशेष AMD GPU architecture के लिए जल्दी support चाहते हैं, तो संपर्क करें
SCALE के components
- AMD GPU के लिए
nvcc dialect CUDA को compile कर सकने वाला nvcc-compatible compiler, जिसमें PTX asm शामिल है
- AMD GPU के लिए CUDA runtime और driver API implementation
- एक open source wrapper library जो ROCm libraries को delegate करके "CUDA-X" API उपलब्ध कराती है।
cuBLAS और cuSOLVER जैसी libraries को इसी तरह संभाला जाता है
SCALE और अन्य solutions में अंतर
- नया GPGPU software लिखने का तरीका देने के बजाय, SCALE व्यापक रूप से उपयोग की जाने वाली CUDA language में लिखे गए programs को AMD GPU के लिए सीधे compile करने में सक्षम बनाता है
- SCALE का लक्ष्य NVIDIA CUDA के साथ पूरी compatibility है। इसका मानना है कि users को कई codebases बनाए बिना या performance से समझौता किए बिना कई GPU vendors को support कर पाना चाहिए
- SCALE की language, NVIDIA CUDA का एक superset है, जो
nvcc से आगे बढ़ना चाहने वाले users के लिए GPU code लिखना अधिक आसान और कुशल बनाने वाले optional language extensions देती है
- SCALE अभी development में है। यदि कोई API missing है जो आपके उपयोग में बाधा बन रही है, तो संपर्क करें। development priorities को समायोजित किया जाएगा
GN⁺ का सार
- SCALE एक महत्वपूर्ण टूलकिट है जो CUDA applications को AMD GPU के लिए native compile करने में सक्षम बनाता है
- मौजूदा CUDA programs में बदलाव किए बिना उन्हें AMD GPU पर चलाया जा सकता है, जो developers के लिए बड़ा लाभ है
- NVIDIA CUDA के साथ पूर्ण compatibility का लक्ष्य होने के कारण, यह कई GPU vendors को support करने में फायदेमंद है
- यह एक ongoing project है, और यदि ज़रूरी API missing हों तो development team से संपर्क कर priority समायोजित कराई जा सकती है
- समान कार्यक्षमता वाले projects में ROCm और HIP शामिल हैं
1 टिप्पणियां
Hacker News की राय
कई लोगों का मानना है कि AMD को translation layer सपोर्ट करनी चाहिए, लेकिन एक राय यह है कि यह बुरा विचार है
एक राय यह है कि bug compatibility का पीछा करना मूर्खता है
एक राय यह है कि यह समझना मुश्किल है कि hardware पर बहुत निर्भर code AMD पर "बस चल" कैसे सकता है
wgmmainstruction, optimal tensor core memory और register layout, tensor memory accelerator instructions आदि की जानकारी होती हैअगर यह सच है तो प्रभावशाली है, लेकिन एक राय यह है कि यह open source नहीं है और यह कैसे काम करता है इस पर सटीक जानकारी भी कम है
एक राय यह है कि Nvidia के ऊँचे valuation का मुख्य कारण यह है कि AMD ने GPU को ML के लिए उपयोगी बनाने में निवेश नहीं किया
एक राय यह है कि AMD ने इतनी गलतियाँ की हैं कि ऐसे project की सराहना करने का मन होता है
मैंने कुछ साल पहले Spectral Compute में काम किया था
ptxbackend और NVCC से भी बेहतर प्रदर्शन कर रहे थेमैंने थोड़ा CUDA लिखा है
एक राय यह है कि यह project शानदार है
अभी की limitations के लिए एक page होना अच्छा है, लेकिन एक राय यह है कि ज़्यादातर लोग जिस चीज़ को "CUDA" कहते हैं, वह असली CUDA functionality का सिर्फ छोटा हिस्सा है
एक राय यह है कि तकनीकी रूप से संभव होने के कारण यह वास्तविक हो सकता है