Andrzej Janik氏は、CUDA技術のオープンソース実装であるZLUDA 5のリリースを発表しました。このプロジェクトは、CUDAアプリケーションをNVIDIA以外のGPUを搭載したシステム上で、改変することなく実行できるようにし、インターポーザーなしで動作するアプリケーションに近いパフォーマンスを実現することを目指しています。プロジェクトのコードはRustで記述されており、MITライセンスおよびApache 2.0ライセンスの下で提供されています。
ZLUDA 5は、Andrzej氏がAMD在籍中に開発されたコードをコードベースから削除した後に形成された、プロジェクトの2番目の重要なリリースでした。2022年からAndrzej氏はAMDでAMD GPU用のCUDA互換レイヤーの作成に取り組んでいましたが、このプロジェクトは2024年に中止されました。契約条件に従い、AMDの担当者から公開許可を得た後、Andrzej氏はAMD在籍中に開発した成果をオープンソース化し、ROCmスタックとHeterogeneous Computing Interface for Portability (HIP)ランタイム上でCUDAアプリケーションを実行できるようにしました。
昨年、弁護士からの書簡で電子メールでのやり取りで与えられた許可が無効であることが明確になったため、Andrzej氏は自身のコードをオープンアクセスから削除せざるを得なくなりました。その後、Andrzej氏はAMD入社以前に存在していたコードベースをベースに、ZLUDAの新バージョンの開発に着手しました。現在、このプロジェクトはCUDAを用いて機械学習タスクを高速化するアプリケーションに重点を置いています。このプロジェクトは現時点ではAMD GPUに限定されていますが、最終的にはIntel GPUにも対応する予定です。
新リリースの主な改善点:
- NVIDIA GPU の CUDA 最適化を使用して大規模な言語モデルを実行するために、ZLUDA 上で llm.c、Llama.cpp、および PyTorch フレームワークを実行するための初期サポートが追加されました。
- パフォーマンスを向上するために cuBLAS、cuBLASLt、および nvml ライブラリを使用するアプリケーションを実行するための初期サポートが実装されました。
- CUDAを使用したアプリケーションのトレース用に、zluda_traceレイヤーが追加されました。zluda_traceを使用すると、問題を診断し、正常なアプリケーション実行を妨げるZLUDAの欠陥を特定できます。
- NVIDIA PTX 命令ファイルを AMD RDNA 中間表現にコンパイルできるコマンドライン ユーティリティ zoc (ZLUDA オフライン コンパイラ) が導入されました (以前はこの機能はライブラリ関数として利用可能でした)。
- PTXモジュールローダーは、GPU上で実行されるカーネルのキャッシュメカニズムを実装します。キャッシュにより、PTX(Parallel Thread Execution)命令を特定のGPUのマシンコードにコンパイルするという、リソースを大量に消費する処理の再実行を回避できます。
出所: オープンネット.ru
