質問
Python用の優れたOpenCLラッパーライブラリを探しています。私はいくつかを検索しようとしました...しかし、十分に良いものを見つけることができませんでした。
解決
最も人気があり、最高の文書化されたオプションは pyopencl. 。それはOpenCLの完全なラッパーであると主張し、ドキュメントは良さそうです。
他のヒント
ピクリー opencl(ホストされているctypesバインディングです Bitbucketで)
その主な目標は単純です。多くのPython実装が実現可能として使用できるように、ラップOpenCL。現在、Cpython 2でテストされています。{5,6,7}、3.2、およびPypy 1.5。 CTYPESライブラリがまだ未熟であるJythonでは、主に機能しないことが知られています。
これを達成するために、標準ライブラリの外側の拡張モジュールと依存関係を避けます。理想的には、numpyアレイやPIL画像のようなものは機能するはずですが、必要はありません
現在、かなり新しいです。私は最近それで遊んでいて、うまく機能しています。 Pyopenclと比較してタイミングが完了していませんが、パフォーマンスは完全に合理的であるように見えます
OS X 10.6のOpenCL 1.0(およびAMD Radeon 5870、 こちらをご覧ください)、しかし、10.7以下で完全に機能し、OpenCL 1.1
ドキュメントに関しては、Cライブラリへのかなり直接的なバインディングであるため、ドキュメントが適用されます。また 「Pyopenclの冒険」 優れており、ほとんどすべてのバインディングに適用されます
私たちは開発しています opencl4py, 、より高いレベルのバインディング。このプロジェクトはCFFIを使用しているため、Pypyで動作します。
Pyopenclで遭遇した主要な問題は、「インポートPyopencl」がOpenCL初期化を行い、NVIDIAドライバーの場合に仮想メモリ全体を実行することです。 )。 opencl4pyは、怠zyなopencl初期化を使用して、この「インポート地獄」を解決します。
その後、超簡単なバイナリプログラムキャッシュなどの素晴らしい機能を獲得しました。残念ながら、ドキュメントはやや短いです。それがどのように機能するかを学ぶための最良の方法は、テストを通過することです。