ZLUDA, toteutus, joka mahdollistaa CUDA-sovellusten ajamisen AMD GPU:illa

ZLUDA

ZLUDA toimii AMD:n ROCm-pinolla

Uutinen on julkistettu, että AMD on tehnyt päätöksen lopettaa ZLUDA:n kehittämisen rahoittaminen, mikä on avoin CUDA-teknologian käyttöönotto AMD GPU:ille, jonka avulla voit ajaa CUDA-sovelluksia muuttamatta niitä suorituskyvyllä, joka on lähellä ilman lisätasoja toimivien sovellusten suorituskykyä.

Kahden viime vuoden aikana on tehty työtä tämän kerroksen kehittämiseksi helpottaa CUDA-sovellusten suorittamista järjestelmissä, joissa on AMD GPU. Mutta viime aikoihin asti AMD on tehnyt sen päätöksen suorittaa CUDA-sovelluksia AMD-näytönohjainten kanssa ei ollut kaupallisesti kiinnostava, mikä antoi kehittäjälle mahdollisuuden avata kehitystyönsä kuten sopimuksessa on sovittu.

Tietoja ZLUDAsta

El proyecto luotiin alun perin tukemaan CUDA-työskentelyä Intelin GPU:illa ja muutos GPU-tukipolitiikassa johtuu siitä, että alun perin ZLUDA:n kehittäjä oli Intelin työntekijä. Vuonna 2021, Intel päätti, että se ei ollut kaupallisesti kannattavaa tarjoavat mahdollisuuden ajaa CUDA-sovelluksia Intelin GPU:illa, mikä johti aloitteen kehittämisen keskeyttämiseen.

Vuoden 2022 alussa kehittäjä jätti Intelin ja allekirjoitti sopimuksen AMD:n kanssa jatkaakseen kehitystä CUDA-yhteensopivuustasosta. Kehityksen aikana AMD pyysi, että yrityksen kiinnostusta ZLUDA-projektiin ei edistetä ja että se ei sitoutuisi ZLUDA:n julkiseen tietovarastoon.

ZLUDA tarjoaa binaarituen CUDA-sovelluksille olemassa olevia, jotka on käännetty CUDA-kääntäjällä NVIDIA-grafiikkasuorittimille ilman, että sinun tarvitsee tehdä muutoksia lähdekooditasolla. Toteutus toimii AMD:n ROCm-pinossa ja HIP-ajotilassa.

Nykyisessä tilassaan ZLUDA:n muunnoslaatutasoa pidetään alfaversiona. Vaikka on syytä mainita, että se pystyy jo ajamaan monia CUDA-sovelluksia, sen lisäksi, että se tarjoaa minimaalisen tuen primitiivisille ja kirjastoille, siinä on myös OptiX-kehyksen prototyyppitoteutuksia.

ZLUDA

ZLUDA-vertailukaavio

Ensimmäisen ZLUDA-hallinnan alaisen CUDA-sovellusten suorituksen aikana havaitset huomattavia viiveitä koska ZLUDA kokoaa GPU:n koodin. Kuitenkin, myöhemmissä ajoissa tämä viive katoaa, kun käännetty koodi tallennetaan välimuistiin, mikä johtaa lähes alkuperäiseen suorituskykyyn käännettyä koodia suoritettaessa. Esimerkiksi käytettäessä Geekbenchiä AMD Radeon 6800 XT -grafiikkasuorittimella, CUDA-benchmark-sarjan ZLUDA-pohjainen versio osoitti huomattavasti parempaa suorituskykyä kuin OpenCL-pohjainen versio.

Lisäksi mainitaan, että virallisen CUDA-ajurin API:n tuki ja dokumentoimattoman CUDA API:n käänteinen suunnittelu on toteutettu ZLUDA:ssa korvaamalla funktiokutsut analogisilla funktioilla, joita tarjotaan HIP-ajotilassa, joka on hyvin samanlainen kuin CUDA.

Esimerkiksi funktio cuDeviceGetAttribute() korvataan funktiolla hipDeviceGetAttribute(). ZLUDA varmistaa myös yhteensopivuuden NVIDIA-kirjastojen, kuten NVML, cuBLAS ja cuSPARSE, kanssa. Näille kirjastoille ZLUDA tarjoaa käännöskirjastoja, joilla on sama nimi ja sama ominaisuussarja, jotka on rakennettu samanlaisten AMD-kirjastojen päälle. GPU-sovelluskoodi, joka on käännetty PTX (Parallel Thread Execution) -esityksessä, erityinen kääntäjä kääntää LLVM IR -väliesitykseen, josta AMD GPU:n binäärikoodi luodaan.

Lopuksi on mainittava, että Hankkeen tulevaisuus riippuu yhteisön kiinnostuksesta ja mahdollisia yhteistyöehdotuksia muilta yrityksiltä. Ilman ulkopuolista tukea projektin kehitys jatkuu yksinomaan kirjoittajaa kiinnostavilla alueilla, kuten DLSS.

Varten kiinnostunut projektin koodista, sinun pitäisi tietää, että se on kirjoitettu Rust-kielellä ja sitä jaetaan MIT- ja Apache 2.0 -lisensseillä, ja projekti on yhteensopiva Linuxin ja Windowsin kanssa. Jos olet kiinnostunut oppimaan siitä lisää, voit tutustua yksityiskohtiin Seuraavassa linkissä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.