ポータブルなOpenCL実装「Portable Computing Language v1.0」リリース

 LLVMベースの移植性のあるOpenCL実装プロジェクト「Portable Computing Language」は12月19日、「Portable Computing Language(POCL) v1.0」を公開した。

 Portable Computing Language(POCL)は移植性のあるOpenCLの標準実装で、OpenCL CフロントエンドにClang、カーネルコンパイラ実装と移植性レイヤにLLVMを用いる。また、カーネルコンパイラ、タスクランタイムの強化により、OpenCLプログラムの移植性の性能改善も図る。これによりターゲットに依存した手動での最適化の作業を軽減する。

 OpenCLはバージョン1.2をサポート、一部2.0の機能もサポートする。さまざまなCPUに加え、ASIP(TCE/TTA)、実験的だがNVIDIA GPU(CUDA経由)、HSA対応GPUをサポートする。ライセンスはMIT License。

 本バージョンではLLVM/Clang 4.0および5.0をサポートする。CPUバックエンド利用時にOpenCL 1.2のほとんどの標準規格適合テストにパスしているという。

 また、カーネルエンキュー上での自動ローカルワークグループのサイジングを改善した。メモリリーク関連のバグも修正した。POCLバイナリのフォーマットもアップデートした。

 POCLはプロジェクトのWebサイトより入手できる。

Portable Computing Language
http://portablecl.org/