ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ Π΅ инструмСнтариум ZLUDA, позволяващ стартиранС Π½Π° CUDA-прилоТСния Π½Π° GPU AMD

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ZLUDA Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΎΡ‚ΠΊΡ€ΠΈΡ‚Π°Ρ‚Π° рСализация Π½Π° тСхнологията CUDA Π·Π° GPU AMD, която позволява ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π½Π΅ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ CUDA прилоТСния с производитСлност, Π±Π»ΠΈΠ·ΠΊΠ° Π΄ΠΎ производитСлността Π½Π° прилоТСнията, изпълнявани Π±Π΅Π· прослойки. ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈΡΡ‚ инструмСнтариум осигурява Π±ΠΈΠ½Π°Ρ€Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ‚Π΅ CUDA прилоТСния, ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° CUDA Π·Π° GPU NVIDIA. РСализацията Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π°Π΄ Ρ€Π°Π·Π²ΠΈΠ²Π°Π½Π°Ρ‚Π° ΠΎΡ‚ AMD стСка ROCm ΠΈ runtime HIP (Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ Π·Π° Ρ…Π΅Ρ‚Π΅Ρ€ΠΎΠ³Π΅Π½Π½ΠΈ изчислСния Π·Π° прСносимост). ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅ написан Π½Π° Rust ΠΈ сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ‚Π΅ MIT ΠΈ Apache 2.0. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Ρ€Π°Π±ΠΎΡ‚Π° Π² Linux ΠΈ Windows.

Π‘Π»ΠΎΠΉ Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° CUDA Π½Π° систСми с GPU AMD сС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° послСднитС Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, Π½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ ΠΈΠΌΠ° ΠΏΠΎ-дълга история ΠΈ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π΅ създадСн Π·Π° осигуряванС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° CUDA Π½Π° GPU Intel. ΠŸΡ€ΠΎΠΌΡΠ½Π°Ρ‚Π° Π² ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° GPU сС обяснява с Ρ‚ΠΎΠ²Π°, Ρ‡Π΅ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ ZLUDA Π΅ Π±ΠΈΠ» слуТитСл Π½Π° Intel, Π½ΠΎ ΠΏΡ€Π΅Π· 2021 Π³ΠΎΠ΄ΠΈΠ½Π° компанията Π΅ ΠΏΡ€Π΅Ρ†Π΅Π½ΠΈΠ»Π°, Ρ‡Π΅ прСдоставянСто Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° стартиранС Π½Π° CUDA прилоТСния Π½Π° GPU Intel Π½Π΅ прСдставлява интСрСс Π·Π° бизнСса ΠΈ Π½Π΅ Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΠ»Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π°Ρ‚Π°.

Π’ Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° 2022 Π³ΠΎΠ΄ΠΈΠ½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ напусна Intel ΠΈ ΡΠΊΠ»ΡŽΡ‡ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ с AMD Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° слой Π·Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с CUDA. ΠšΠΎΠΌΠΏΠ°Π½ΠΈΡΡ‚Π° AMD ΠΏΠΎΠΌΠΎΠ»ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π΄Π° Π½Π΅ Π°Ρ„ΠΈΡˆΠΈΡ€Π° интСрСса Π½Π° AMD към ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ZLUDA ΠΈ Π΄Π° Π½Π΅ ΠΏΡ€Π°Π²ΠΈ ΠΊΠΎΠΌΠΈΡ‚ΠΈ Π² публичния Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° ZLUDA. Π‘Π»Π΅Π΄ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ компанията AMD Ρ€Π΅ΡˆΠΈ, Ρ‡Π΅ стартиранСто Π½Π° CUDA прилоТСния Π½Π° GPU AMD Π½Π΅ прСдставлява интСрСс Π·Π° бизнСса, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΠΎ условията Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ своя Ρ‚Ρ€ΡƒΠ΄. Въй ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° GPU спряха финансиранСто Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° съдба сСга зависи ΠΎΡ‚ интСрСса Π½Π° общността ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΡŠΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Π‘Π΅Π· външна ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ вСроятно Ρ‰Π΅ сС Ρ€Π°Π·Π²ΠΈΠ²Π° само Π² посоки, интСрСсни Π·Π° Π°Π²Ρ‚ΠΎΡ€Π°, ΠΊΠ°Ρ‚ΠΎ DLSS (Deep Learning Super Sampling).

Π’ тСкущия си Π²ΠΈΠ΄, Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° качСство Π½Π° рСализцията Π΅ ΠΎΡ†Π΅Π½Π΅Π½ΠΎ ΠΊΠ°Ρ‚ΠΎ Π°Π»Ρ„Π°-вСрсия. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, ZLUDA Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° изпълнСниС Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ CUDA прилоТСния, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Geekbench, 3DF Zephyr, Blender, Reality Capture, LAMMPS, NAMD, waifu2x, OpenFOAM ΠΈ Arnold. ΠžΡΠΈΠ³ΡƒΡ€Π΅Π½Π° Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ cuDNN, cuBLAS, cuSPARSE, cuFFT, NCCL ΠΈ NVML.

ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΈΡΡ‚ старт Π½Π° CUDA прилоТСния ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ZLUDA сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° с осСзаСми забавяния, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ZLUDA ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π° GPU ΠΊΠΎΠ΄Π°. Π’ слСдващитС стартирания ΠΏΠΎΠ΄ΠΎΠ±Π½Π° забавянС няма, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ компилираният ΠΊΠΎΠ΄ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π² кСша. ΠŸΡ€ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° компилирания ΠΊΠΎΠ΄ производитСлността Π΅ Π±Π»ΠΈΠ·ΠΊΠ° Π΄ΠΎ Π½Π°Ρ‚ΡƒΡ€Π°Π»Π½Π°Ρ‚Π°. ΠŸΡ€ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° Geekbench Π½Π° GPU AMD Radeon 6800 XT, Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΡŠΡ‚ Π½Π° тСстовия Π½Π°Π±ΠΎΡ€ Π·Π° CUDA, изпълняван Ρ‡Ρ€Π΅Π· ZLUDA, ΠΏΠΎΠΊΠ°Π·Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-висока производитСлност ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° OpenCL.

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ Π΅ инструмСнтариум ZLUDA, позволяващ стартиранС Π½Π° CUDA-прилоТСния Π½Π° GPU AMD

ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° официалния CUDA Driver API ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½Π°Ρ‚Π° Ρ‡Ρ€Π΅Π· ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³ част ΠΎΡ‚ нСдокумСнтирания API CUDA Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π² ZLUDA Ρ‡Ρ€Π΅Π· замяната Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, прСдоставСни Π² HIP runtime, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ наподобява CUDA. НапримСр, функцията cuDeviceGetAttribute() сС замСня с hipDeviceGetAttribute(). ПодобСн Π½Π°Ρ‡ΠΈΠ½ сС осигурява ΠΈ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Π½Π° NVIDIA, ΠΊΠ°Ρ‚ΠΎ NVML, cuBLAS ΠΈ cuSPARSE β€” Π·Π° Ρ‚Π°ΠΊΠΈΠ²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² ZLUDA сС прСдоставят транслиращи Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ със ΡΡŠΡ‰ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅ ΠΈ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π°Π΄ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° AMD.

GPU ΠΊΠΎΠ΄ΡŠΡ‚ Π½Π° прилоТСния, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ Π² прСдставлСниС PTX (Parallel Thread Execution), сС транслира ΠΎΡ‚ спСциалСн ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ Π² ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎ прСдставлСниС LLVM IR, Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΊΠΎΠ΅Ρ‚ΠΎ сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π±ΠΈΠ½Π°Ρ€Π΅Π½ ΠΊΠΎΠ΄ Π·Π° GPU AMD.

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ Π΅ инструмСнтариум ZLUDA, позволяващ стартиранС Π½Π° CUDA-прилоТСния Π½Π° GPU AMD


Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru
ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster