Clytherを高性能タスクに使用することを考えています。 Pythonだけを使ってOpenCLカーネルを書くのは面白いですが、私はパフォーマンスのギャップについて疑問に思っています。クリザーオーバーヘッドのサイズは?
クリヤーがうまくいくタスクは何ですか?悪いですか?クリザ生成カーネルは良いかどうか?
いくつかのベンチマークを見つけることはできますか?
Clytherを高性能タスクに使用することを考えています。 Pythonだけを使ってOpenCLカーネルを書くのは面白いですが、私はパフォーマンスのギャップについて疑問に思っています。クリザーオーバーヘッドのサイズは?
クリヤーがうまくいくタスクは何ですか?悪いですか?クリザ生成カーネルは良いかどうか?
いくつかのベンチマークを見つけることはできますか?
CLYtherの主なエントリポイントは、clyther.task
とclyther.kernel
のデコレータです。これらのデコレータのいずれかで関数を装飾すると、関数は呼び出されたときにOpenCLにコンパイルされます。
CLytherは、Python言語のサブセットのコンパイラです。これはあなたのPythonのサブセットコードをOpenCLにコンパイルするので、カーネルの実際の実行時間はOpenCLへのインタフェースの間で多くの違いはありません。 CLytherの実際のオーバーヘッド(Pythonとのすべてのインターフェイスと同様)は、OpenCL関数の呼び出し、またはCLyther/PythonとOpenCL間のデータの移動に由来します。
CLytherのperformanceを示すベンチマークは、documentationで利用できます。ソースtarballには、ベンチマークプログラムのC++およびFORTRAN版、ラプラス方程式ソルバーが含まれていますので、それらを使用してベンチマーク結果を再現することができます。
個人的には、OpenCL計算が必要な問題の大半でCLytherを効果的に使用できると私は信じています。
ベンチマークは1つしか見つかりませんでした。http://srossross.github.com/Clyther/performance_python.html#performance-results – Natan