
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
- Friss Mesa (25.2 vagy újabb) – Telepíthető forrásból vagy rolling disztrók (pl. Arch, Fedora Rawhide, Nobara) segítségével.
- Friss Vulkan Loader és fejlesztőeszközök (vulkan-tools, vulkan-headers, vulkan-validationlayers)
- 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.
