世界のスーパーコンピュータとそれを動かす人々


10月 21, 2024

ZLUDA、CUDAエミュレータとして三度目の正直

HPCwire Japan

Doug Eadline オリジナル記事「ZLUDA Takes Third Wack as a CUDA Emulator

ZLUDA CUDAエミュレータは、3度目の復活を遂げた。一時期、このプロジェクトはAMDによってひっそりと資金提供され、AMD GPU上でネイティブに近いパフォーマンスで修正されていないCUDAアプリケーションを実行できることが実証された。アルファ版の品質とみなされていたZLUDAは、さまざまなネイティブCUDA HPCアプリケーション(LAMMPS、NAMD、OpenFOAMなど)で動作することが確認されていた。

しかし、AMDが最近、資金援助したプロジェクトの一部をロールバックするよう要請した。開発者のアンジェイ・ヤニック氏は、エヌビディアがプロジェクトの逆行や中止を迫ったわけではないと明言した。

Phoronixの最近の投稿によると、AMDのスポンサーシップや関与が汚染されたソースコードを避けるため、ZLUDAはクリーンな状態で再スタートを切ったという。ヤニック氏に言わせると、匿名の組織が現在ZLUDAの開発をスポンサーしている。この匿名の組織は、ZLUDAの将来に対するヤニック氏のビジョンを共有している。

 
   

この3番目のブランチでは、複数のGPUアーキテクチャのサポートに重点を置いて開発が進められている。当初は、AMD GPU(ただしAMDからの資金提供は受けていない)での開発が中心となる。ZLUDAの開発はオープンソースのままであり、コミュニティからの貢献を歓迎している。このバージョンでは、すべてのCUDAアプリケーションを対象とするのではなく、機械学習とAIのワークロードに重点を置く。Phoronixの報道によると、ヤニック氏は新しいZLUDAコードをまともな状態にするには約1年かかると見込んでいる。

ZLUDAの開発には、Androidデバイス上でJava標準ライブラリを実行するためにGoogleがDalvikにJava APIを実装したのと同様に、他のGPU上にCUDA標準APIを実装することが含まれる。Oracleは著作権および特許の侵害を主張してGoogleを提訴したが、2012年5月、この訴訟の陪審員団はGoogleがOracleの特許を侵害していないと判断し、裁判官はGoogleが使用したJava APIの構造は著作権保護の対象ではないと裁定した。したがって、CUDA API を他のハードウェアで再実装することに法的な問題はない。

CUDA のソースコードをエヌビディアのツールでコンパイルすると、コードは Java バイトコードに似た中間表現である PTX に書き出される。PTX コードは、CUDA API が利用可能であれば、特定の GPU に適した機械語にコンパイルされる。このアプローチにより、ZLUDA は、以前の不運な AMD GPU 開発でネイティブに近いパフォーマンスを達成することができた。

このプロジェクトが継続的に資金援助を受けられれば、AMDとIntelのビデオカードの両方がCUDAの城の中に入れるようになる可能性もある。