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

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ZLUDA Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΎΡ‚ΠΊΡ€ΠΈΡ‚Π° рСализация Π½Π° тСхнологията CUDA Π·Π° GPU AMD, която позволява ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π½Π΅ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ CUDA прилоТСния с производитСлност, Π±Π»ΠΈΠ·ΠΊΠ° Π΄ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΎ Π±Π΅Π· прослойки. ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈΡΡ‚ инструмСнтариум осигурява Π±ΠΈΠ½Π°Ρ€Π½Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ с Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ CUDA прилоТСния, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈ с ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° CUDA Π·Π° GPU NVIDIA. РСализацията Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²ΡŠΡ€Ρ…Ρƒ Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Ρ‰ΠΈΡ сС стСк ROCm, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ ΠΎΡ‚ компанията AMD, ΠΈ 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