の発売 プロジェクトの新しいバージョン PoCL1.6 (Portable Computing Language OpenCL)、バージョン1.6のハイライトの11.0つは、Clang / LLVM XNUMXのサポート、およびCUDAのパフォーマンスと機能の改善、PowerPCとの互換性の改善、OpenCLデバッグの使用の改善です。
PoCLに慣れていない人は、PoCLが何であるかを知っておく必要があります。 ポータブルなオープンソースの実装 (MITからライセンス供与) OpenCL標準の (1.2といくつかの2.0機能がサポートされています)。 マルチデバイスのオープンソースOpenCL実装であるだけでなく (真に異種)簡単に移植できるこのプロジェクトの主な目標は、OpenCL準拠のデバイスを単一の中央で調整されたプラットフォームに統合することにより、それらのデバイスの多様性の相互運用性を向上させることです。
さらに、重要な長期目標のXNUMXつは、ランタイムおよびコンパイル技術を使用するデバイスタイプでのOpenCLプログラムのパフォーマンスの移植性を向上させることです。
OpenCLカーネルコンパイラはLLVMに基づいており、OpenCL CへのインターフェイスとしてClangが使用されます。適切な移植性とパフォーマンスを提供するために、OpenCLカーネルコンパイラは、さまざまなハードウェアリソースを使用してコード実行を並列化できる複合関数を生成できます。 、VLIW、スーパースカラー、SIMD、SIMT、マルチコア、マルチスレッドなど。 ICD(Installable Client Driver)ドライバーがサポートされています。 CPU、ASIP(TCE / TTA)、HSAアーキテクチャに基づくGPU、およびNVIDIA GPU(CUDA)を介して作業を提供するバックエンドがあります。
PoCL1.6の主な新機能
この新しいバージョンのPoCL1.6は、コンパイル時にデバイスドライバーを有効にしてこの実装をコンパイルする機能を強調し、デバイスの可用性は起動時に検証されます(以前は、PoCLが構築および実行されているシステム)彼らは同じコントローラーをサポートしているはずです)。 condaパッケージマネージャーを使用して、Linux-x86_64およびLinux-ppc64leシステムのCUDAサポートを備えたPoCLバイナリパッケージを配布する機能を実装しました。
目立つもう11つの変更点は、LLVM XNUMXのサポートと、CPUコントローラーを使用するときにOpenCLコードをデバッグするための拡張された可能性です。
さらに、CUDAバックエンドのパフォーマンス最適化が実行され、ローカルメモリ(FFT、GEMM)の使用に関連する操作を大幅に高速化できることが強調されています。
SHOCベンチマークを使用したベンチマーク(現在継続的にテストされている)は、これらの最適化により、特にFFTやGEMMなどのローカルメモリを含むベンチマークのパフォーマンスが、以前のリファレンス。PoCLは現在、Nvidia独自のOpenCLドライバーで競争力のあるパフォーマンスを実現することがよくあります。 残りの問題領域の根本原因を特定して排除するための貢献を歓迎します。 また、OpenCL 1.2 /3.0標準の機能カバレッジを改善するための貢献を歓迎します。
- 多くのテストでのPoCLのパフォーマンスは、NVIDIA独自のOpenCLドライバーに近くなりました。
- HARDENING_ENABLEコンパイルパラメータを追加して、パフォーマンスの低下を犠牲にして、コンパイラオプションがより安全なlibpocl.soを生成できるようにしました。
- PowerPC 8/9システムのサポートが返されました。pthreadおよびCUDAデバイスを使用する場合のOpenCL実装レベルは、x86_64システムのCUDAレベルに対応します。
- __ローカルブロックを使用するCUDAカーネルのABIを変更しました。 アップグレード後、ユーザーはpoclキャッシュをクリアする必要があります。
- STATIC_LLVMおよびllvm-configを使用してバインドするライブラリを定義する代わりに、SINGLE_LLVM_LIBビルドオプションのサポートが削除されました。
最後に、この新しいバージョンについて詳しく知りたい場合は、詳細を確認できます 元の広告で。
この実装についてもっと知りたい人は、相談することができます 公式ウェブサイト このうち、ドキュメントとダウンロードファイルを見つけることができます。
プロジェクトコードはMITライセンスの下で配布され、作業はプラットフォームX86_64、MIPS32、ARM v7、AMD HSA APU、およびVLIWアーキテクチャを備えたさまざまな特殊なTTAプロセッサでサポートされます。