A RADV Vulkan illesztőprogram BFloat16 támogatása a Mesa 25.2-ben

Segítséget kaptál? Szívesen töltöd itt az idődet? Visszajársz hozzánk? Támogasd a munkákat: Ko-fi és Paypal!

kami911 képe

A Vulkan API tovább fejleszti képességeit a modern számítási igényekhez, és egy újabb jelentős fejlesztés a BFloat16 (BF16) adattípus támogatása, amely egyre fontosabb szerepet kap a gépi tanulás (ML) és mesterséges intelligencia (AI) alkalmazásokban. Március végén a Vulkan 1.4.311-es verziója bevezette a VK_KHR_shader_bfloat16 kiterjesztést, amely lehetővé teszi a BF16 műveletek végrehajtását SPIR-V shadereken keresztül SPV_KHR_bfloat16 használatával. Most pedig a RADV (Radeon Vulkan) driver a Mesa 25.2 verziójában már tartalmazza ezt a támogatást.

Fontos tudnivalók

  • BFloat16 támogatás: A BFloat16 vagy BF16 egy 16 bites lebegőpontos számábrázolás, amely a hagyományos 32 bites (float32) ábrázolás helyett 16 bitet használ. Ez jó kompromisszumot kínál a teljesítmény és a precizitás között, különösen gépi tanulásnál és mesterséges intelligenciánál, ahol nem szükséges minden esetben a legnagyobb pontosság. A BF16 gyorsabb számításokat és csökkentett memória-sávszélességet eredményezhet.
  • RADV illesztőprogram támogatása: A RADV driver most már támogatja a VK_KHR_shader_bfloat16 kiterjesztést, amely lehetővé teszi a BF16 műveletek végrehajtását megfelelő AMD GPU-kon Vulkan alatt. Ez új lehetőségeket nyit meg a gépi tanulásos alkalmazások és más számításigényes feladatok számára, Radeon hardvereken.
  • Pontossági problémák RDNA3 (GFX11) kártyákon: Bár ez egy fontos fejlesztés, az AMD RDNA3 (GFX11) GPU-kon jelenleg pontossági problémák adódnak BF16 használata esetén, ezért ezek a kártyák egyelőre nem támogatják a BF16-ot. A támogatás egyelőre kizárólag RDNA4 (GFX12) GPU-kra vonatkozik.
  • Intel és NVIDIA illesztőprogram támogatás: A RADV driver előtt Intel ANV Vulkan driver is implementálta a BF16 támogatást a Mesa 25.2-ben, követve a Vulkan 1.4.311-es verzióját. Az NVIDIA szintén bevezette a BF16 támogatást egy Vulkan béta driverben március végén. Az AMD hivatalos AMDVLK illesztőprogram azonban még nem kínálja ezt a BFloat16 kiterjesztést.
  • AMDVLK (AMD hivatalos Vulkan driver) még nem támogatja ezt a kiterjesztést – csak RADV.
  • Jelenleg kevés shader compiler és AI keretrendszer használja ki automatikusan, tehát manuális shaderkódolás vagy patchelt build szükséges.

Előnyök a gépi tanulásban és mesterséges intelligenciában

A BFloat16 támogatás integrálásával a Vulkan driver-ek, mint a RADV, lehetőséget adnak a fejlesztőknek, hogy kihasználják ezt az új adatformátumot gépi tanulási és mesterséges intelligencia keretrendszerekben, például TensorFlow-ban vagy PyTorch-ban. A BF16 precizitás használata segíthet optimalizálni mind a modellek betanítását, mind az alkalmazásokat, különösen nagy adatállományok vagy skálázott modellek esetén.

Továbbfejlesztések Jövője

Ez a funkció a jövőben további fejlesztéseken mehet keresztül, és várhatóan szélesebb körű támogatást kapnak az AMD GPU-k, miközben egyre több alkalmazás használja ki a BF16 által nyújtott előnyöket. A RADV driver támogatása egy jelentős mérföldkő a Vulkan számára, hogy egyre inkább alkalmas legyen a nagy teljesítményű számítástechnikai munkaterhelésekhez, és különösen a gépi tanulásos alkalmazásokhoz.

Szoftveres előfeltételek

  1. Friss Mesa (25.2 vagy újabb) – Telepíthető forrásból vagy rolling disztrók (pl. Arch, Fedora Rawhide, Nobara) segítségével.
  2. Friss Vulkan Loader és fejlesztőeszközök (vulkan-tools, vulkan-headers, vulkan-validationlayers)
  3. Frissített RADV driver (általában automatikusan jön a Mesa részeként)

Hogyan ellenőrizheted, hogy a VK_KHR_shader_bfloat16 támogatott-e?

Terminálban futtasd:

vulkaninfo | grep VK_KHR_shader_bfloat16

Ha látod a kimenetben, akkor az eszközöd támogatja a funkciót.