CNugteren/CLBlast

Tuned OpenCL BLAS

解決する問題

CLBlast は OpenCL デバイス向けに高性能な基本線形代数サブルーチン(BLAS)の実装を提供します。さまざまなハードウェア(複数ベンダーの GPU、組み込みアクセラレータ、CPU など)において、ベクトルおよび行列演算の最大の計算効率を達成する問題を解決します。これにより、CUDA などのベンダー固有のエコシステムに縛られることなく、柔軟に利用できます。

動作方法

C++11 で記述されたこのライブラリは、OpenCL デバイスバッファ上で動作する標準的な BLAS ルーチンを実装しています。チューニング可能なアーキテクチャを採用しており、標準的なパフォーマンスが不十分な場合、特定のハードウェア構成や行列サイズに最適化するための専用チューナーを実行できます。C および C++ の API をサポートし、半精度(fp16)データ型を活用することで、パフォーマンスを向上させています。

対象ユーザー

NVIDIA 以外のハードウェアで高性能な線形代数演算が必要な開発者、または cuBLAS などのプロプライエタリな代替手段ではなく、オープンソースでクロスプラットフォームなライブラリを好む開発者向けに設計されています。特に Intel CPU/GPU、組み込みデバイス、あるいは特殊な OpenCL ハードウェアをターゲットとする開発者にとって有用です。

特徴

  • 複数ベンダー対応: デスクトップ/ラップトップ GPU、組み込み GPU、その他の OpenCL 対応アクセラレータで動作します。
  • チューナブルなパフォーマンス: 特定のハードウェアや構成に最適化するためのツールを提供します。
  • 柔軟な API: C および C++ の API を提供し、Netlib BLAS および clBLAS と互換性を持たせています。
  • 半精度サポート: fp16 データ型を活用して処理速度を向上させます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト