AMDがボルツマンイニシアティブを発表、C++14コンパイラやCUDAとの互換性等
タレコミ by mozo
mozo 曰く、
情報元へのリンク
HPC分野の国際会議SC15において、AMDはボルツマンイニシアティブを発表した(anandtech)。内容は外部GPUとクラスタに対応したHSA+、CPU/GPU両対応のC++14コンパイラ、CUDAとソースコードレベルで互換性を取るインターフェースの3点だ。ボルツマンの名前は流体解析の格子ボルツマン法や機械学習モデルのボルツマンマシンでGPUが利用されていることから取られたようだ。
HSA+はこれまでのHSAを拡張して外部GPUやHPCクラスタ向けのプログラミングモデルに対応したもの。64bit Linux向けのディスプレイ出力なしのドライバとランタイムが提供され、広帯域インターコネクト経由のノード内/ノード間リモートDMAをサポートする。
Heterogenous Compute Compiler(HCC)と名付けられた新しいコンパイラはLLVM ClangベースでC++11/C++14/C11/OpenMP4.0、そしてC++17で採用予定のParallel STLに対応。1つのコンパイラでCPUとGPUのどちらにも使える。そのためGPU用のカーネルを別のソースに記述する必要はなく、ラムダ式でSTL互換のアルゴリズムに述語引数として渡せばよい。
Heterogeneous-compute Interface for Portability(HIP)はHCCで利用できるCUDA風のAPI。HIPで書かれたソースコードはHCCだけでなく、ヘッダーファイルを加えることでCUDAのコンパイラであるNVCCでもコンパイル可能となる。従来のCUDAコードをHIPコードに変換するためのツールも用意されており、これによってHSA環境はソースコードレベルでCUDAとの互換性を有することになる。
さすがにバイナリレベルでの互換性は実現されなかったようだが、CUDAで開発されたGPGPUプログラムをAMD GPU向けに移植することが容易になったのはありがたい。
情報元へのリンク
AMDがボルツマンイニシアティブを発表、C++14コンパイラやCUDAとの互換性等 More ログイン