SCALE umožňuje nativní kompilaci kódu Nvidia CUDA pro GPU od AMD
18.7.2024, Milan Šurkala, aktualita
![SCALE umožňuje nativní kompilaci kódu Nvidia CUDA pro GPU od AMD](scale-umoznuje-nativni-kompilaci-kodu-nvidia-cuda-pro-gpu-od-amd/60920/img/scale-800.webp)
Aplikace napsané pro Nvidia CUDA běží jen na grafických kartách a akcelerátorech Nvidia, i když tu byly různé pokusy, které toto částečně obcházely a rozběhaly je i na kartách AMD. Projekt SCALE by toho měl dosáhnout nativní kompilací.
Nvidia CUDA je výpočetní architekturou, která běží výhradně na grafických kartách od společnosti Nvidia. Už před lety využívala schopností GPU zpracovat velké množství dat stejnými operacemi najednou pro akceleraci některých vědeckých a jiných výpočetních úloh. Postupem let se z toho stal průmyslový standard, který se konkurenci nedaří rozbourat. AMD se svými prvními pokusy moc neuspělo, byla zde také snaha rozšířit obecný standard OpenCL, v poslední době se ale přece jen daří vtisknout více do povědomí alternativu ROCm. Stále je tu ale myšlenka rozběhat kódy napsané v rozhraní CUDA i na grafických kartách AMD. Byl zde např. projekt ZLUDA, kterému finančně pomáhalo AMD i Intel. Ten využíval překladových vrstev, což je ale věc, kterou Nvidia ve svých podmínkách zakazuje.
![Nvidia CUDA](scale-umoznuje-nativni-kompilaci-kodu-nvidia-cuda-pro-gpu-od-amd/60920/img/nvidia-cuda-800(1).webp)
Nyní se ale po 7 letech vývoje objevil od společnosti Spectral Compute nový projekt SCALE, který by toto měl chytit za správný konec. Nebude spoléhat na žádné překladové vrstvy, které zkompilovaný kód přeloží pro karty AMD, ale rovnou dokáže CUDA kód zkompilovat pro grafické karty AMD. Firma tak doufá, že se CUDA stane podobně více otevřenou platformou, kde tolik nezáleží na výrobci čipu, na kterém daný kód poběží. Šéf firmy to připodobnil k situaci u procesorů, kde kód x86 běží na Intelech i AMD. SCALE v podstatě nahrazuje nvcc a tváří se jako Nvidia CUDA Toolkit s podporou pro všechna možná volání pro kompilátor, která jsou podporována pro karty Nvidia. Výsledek je podobný, rozdílem je jen to, že výsledný kód poběží na kartách AMD.
Otestováno to bylo už na aplikacích jako Blender, Llama-cpp, XGboost, FAISS, GOMC, STDGPU, Hashcat, nebo NVIDIA Thrust a funguje na kartách s architekturou RDNA 2 a RDNA 3. Jde tedy o běžné spotřebitelské karty, výpočetní architektury CDNA zatím nejsou podporovány. A tady dobře víme, že výpočetní oblast je trh, kde Nvidia konkurenci opravdu nechce, protože jsou to právě věci spojené s výpočetními kartami (a umělou inteligencí), kde má dominantní postavení a kde se jí za poslední dobu řádově zvýšily příjmy.