ZLUDA toolkit wis diterbitake, ngijini sampeyan kanggo mbukak aplikasi CUDA ing AMD GPUs

Proyek ZLUDA wis nyiapake implementasine mbukak teknologi CUDA kanggo GPU AMD, sing ngidini sampeyan mbukak aplikasi CUDA sing ora dimodifikasi kanthi kinerja sing cedhak karo kinerja aplikasi sing mlaku tanpa lapisan. Toolkit sing diterbitake nyedhiyakake kompatibilitas binar karo aplikasi CUDA sing wis ana sing disusun nggunakake kompiler CUDA kanggo GPU NVIDIA. Implementasine dianggo ing ndhuwur tumpukan ROCm lan HIP runtime (Antarmuka komputasi heterogen kanggo Portabilitas) sing dikembangake dening AMD. Kode proyek ditulis nganggo Rust lan disebarake miturut lisensi MIT lan Apache 2.0. Ndhukung karya ing Linux lan Windows.

Lapisan kanggo ngatur karya CUDA ing sistem karo AMD GPU wis dikembangakΓ© liwat rong taun kepungkur, nanging project wis sajarah maneh lan Originally digawe kanggo mesthekake CUDA bisa ing Intel GPUs. Owah-owahan ing kabijakan dhukungan GPU diterangake kanthi kasunyatan manawa pangembang ZLUDA wiwitane minangka karyawan Intel, nanging ing taun 2021 perusahaan iki nganggep menehi kemampuan kanggo mbukak aplikasi CUDA ing GPU Intel supaya ora ana kapentingan bisnis lan ora nyepetake. pangembangan inisiatif.

Ing wiwitan taun 2022, pangembang ninggalake Intel lan dikontrak dening AMD kanggo ngembangake lapisan kanggo kompatibilitas CUDA. Sajrone pembangunan, AMD njaluk supaya ora ngiklanake kapentingan AMD ing proyek ZLUDA lan ora nggawe komitmen menyang repositori ZLUDA umum. Rong taun sabanjure, AMD mutusake yen aplikasi CUDA ing AMD GPU ora dadi kapentingan kanggo bisnis, sing, miturut syarat kontrak, ngidini pangembang nemokake karyane. Wiwit pabrikan GPU wis mandheg mbiayai proyek kasebut, nasibe saiki gumantung marang kapentingan masyarakat lan nampa proposal kerjasama saka perusahaan liyane. Tanpa dhukungan eksternal, proyek kasebut mung bisa berkembang ing arah sing menarik kanggo penulis, kayata DLSS (Deep Learning Super Sampling).

Ing wangun saiki, tingkat kualitas implementasine ditaksir minangka versi alpha. Nanging, ZLUDA wis bisa digunakake kanggo mbukak akeh aplikasi CUDA, kalebu Geekbench, 3DF Zephyr, Blender, Reality Capture, LAMMPS, NAMD, waifu2x, OpenFOAM lan Arnold. Nyedhiyakake dhukungan minimal kanggo cuDNN, cuBLAS, cuSPARSE, cuFFT, NCCL lan NVML primitif lan perpustakaan.

Bukak pisanan aplikasi CUDA sing nganggo ZLUDA kedadeyan kanthi wektu tundha amarga kasunyatane ZLUDA nyusun kode GPU. Ora ana wektu tundha ing sakteruse, amarga kode sing dikompilasi disimpen ing cache. Nalika mbukak kode kompilasi, kinerja cedhak native. Nalika mbukak Geekbench ing GPU AMD Radeon 6800 XT, versi ZLUDA saka suite benchmark CUDA luwih apik tinimbang versi OpenCL.

ZLUDA toolkit wis diterbitake, ngijini sampeyan kanggo mbukak aplikasi CUDA ing AMD GPUs

Dhukungan kanggo API Driver CUDA resmi lan bagean reverse-engineered saka CUDA API undocumented dipun ginakaken ing ZLUDA dening ngganti telpon fungsi karo fungsi padha kasedhiya ing runtime HIP, kang padha ing akeh cara kanggo CUDA. Contone, fungsi cuDeviceGetAttribute () diganti dening hipDeviceGetAttribute (). Kompatibilitas karo perpustakaan NVIDIA kayata NVML, cuBLAS lan cuSPARSE dijamin kanthi cara sing padha - kanggo perpustakaan kasebut, ZLUDA nyedhiyakake perpustakaan terjemahan kanthi jeneng sing padha lan fungsi sing padha, dibangun minangka tambahan ing perpustakaan AMD sing padha.

Kode aplikasi GPU sing diklumpukake menyang perwakilan PTX (Parallel Thread Execution) pisanan diterjemahake dening compiler khusus menyang perwakilan intermediate LLVM IR, kanthi basis kode binar kanggo AMD GPUs.

ZLUDA toolkit wis diterbitake, ngijini sampeyan kanggo mbukak aplikasi CUDA ing AMD GPUs


Source: opennet.ru

Add a comment