6

高パフォーマンスのタスクにClytherを使用することを考えています。Python のみを使用して OpenCL カーネルを作成するのはエキサイティングですが、パフォーマンスのギャップについて疑問に思っています。

Clyther が得意とするタスクは何ですか? 苦手?Clyther で生成されたカーネルは適切ですか?

いくつかのベンチマークを見つけることは可能ですか?

4

1 に答える 1

4

ドキュメントに記載されているように、CLyther の主なエントリ ポイントはclyther.taskclyther.kernelデコレータです。関数がこれらのいずれかで装飾されると、関数は呼び出されたときに OpenCL にコンパイルされます。

Clyther は、Python 言語のサブセットのコンパイラです。Python サブセット コードを OpenCL にコンパイルするため、カーネルの実際の実行時間は、OpenCL へのインターフェイス間で大きく異なることはありません (またはすべきではありません)。Clyther の実際のオーバーヘッド (Python とのすべてのインターフェイスと同様) は、OpenCL 関数の呼び出し、または Clyther/Python と OpenCL 間のデータの移動から発生します。

CLyther のパフォーマンスを示すベンチマークは、ドキュメントで利用できます。ソース tarball には、ベンチマーク プログラムの C++ および FORTRAN 版、ラプラス方程式ソルバーが含まれているため、それらを使用してベンチマーク結果を自分で再現できます。

個人的には、OpenCL 計算が必要な問題の大部分で Clyther を効果的に使用できると信じています。

于 2012-12-03T07:57:00.220 に答える