問題タブ [pyopencl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - Pure C OpenCL と Python OpenCL のパフォーマンスの比較
OpenCL への Python ラッパーと Pure C OpenCL の間のパフォーマンス測定を探しています。パフォーマンスの測定値は、時間、メモリなどによって変化する可能性があります。 - 利用可能なベンチマークはありますか? - タイム パフォーマンスの違いについて、どのようなことが予想されますか? - どのような種類のタスク (もちろん並行して...) が違いを生む必要がありますか?
python - Windows への pyopencl のインストール
どうやらopencl 1.1とグラフィックドライバーをインストールするGTX 770を持っています。しかし、とにかくAMD APPをインストールしました(AMD CPUを持っています)。いずれにせよ、pyopenclが機能しないため、問題ありません。インポート時に同じエラーを吐き続けます。
私が実行しているほとんどのopencl
デモとプログラムは問題なく動作するため、特に問題があると思いますpyopencl
。いくつかの依存関係が不足していると思いますか、それともバイナリが上位バージョンをopencl
念頭に置いてコンパイルされたのでしょうか? Visual Studio 2008 と 2010 があります。2013.1 と 2014.1 のバイナリをインストールしてみました。.tar.gzsetup.py
から実行する と運が良くなるかもしれないと考えましたが、それもうまくいきません。ただし、これはより一般的なものであり、私が持っている、、、およびバージョンが見つからないものです。cygwincompiler.py
ld
gcc
dllwrap
.NET やブーストのインストールなど、さまざまなことを試しました。どうすればいいのか本当にわかりません。「依存」を実行しましたが、明らかにWindows 7 64ビットではうまく機能しません。pycuda も動作しません。ほぼ同じエラー メッセージが表示されます。cudaも問題なく動作しています。この場合もバージョンが間違っている可能性があります。または、どちらも姉妹プロジェクトであるため、作者には私が知らない他の共通の依存関係があります。
私はたくさんグーグルで調べましたが、解決策が見つからないようです。どんな助けでも大歓迎です。
numpy - numpyでページ整列メモリを取得する
array
ページ境界で numpy のデータ セクション (つまりデータ) を割り当てる方法はありますか?
CL_MEM_USE_HOST_PTR
IntelデバイスでPyOpenCLを使用していて、を使用してバッファを作成したい場合、私が気にする理由については、データが1)ページ整列され、2)キャッシュラインの倍数のサイズであることを推奨しています。
C では、ページ整列メモリを割り当てるさまざまな方法があります。例を参照してください: GCC で整列された malloc()?
ubuntu - PyOpenCL Ubuntu Nvidia - プラットフォームが見つかりません
python-pyopencl
Ubuntuパッケージを使用してインストールした後、PyOpenCL が Nvidia デバイスにアクセスできません。PyOpenCL をインストールするこの方法は、同じハードウェアと同じバージョンの Ubuntu (14.10) で機能していました。
pyopencl.get_platforms()
エラーメッセージを実行すると、次のようになります。
さまざまなドライバー、さまざまなパッケージの組み合わせ、および OS の新規インストールを試しました。
NvidiaカードのUbuntuにPyOpenClをインストールするにはどうすればよいですか?
更新 1
OS の新規インストール後、get_platforms()
AMD と Intel (beignet) の 2 つのプラットフォームが表示されます。Nvidia はまだ動作しません。
更新 2
http://wiki.tiker.net/OpenCLHowToでさらにいくつかのことを試した後、python-pyopencl
パッケージはエラーをスローするようになりました。
python - AttributeError: 'CommandQueue' オブジェクトに属性 'dtype' がありません
pyFFT で FFT を計算しようとしています。しかし、次のコードはエラーになります。
ref_input のタイプは次のとおりです。
デバッグ出力:
実際、「dtype」が見つかりません。しかし、なぜ?
python - 「GLXPlatform」オブジェクトには属性「WGL」がありません
私は OpenGL/OpenCL の初心者です。この例のコードを実行しようとして いますが、エラーがあります:
私が理解しているように、WGL は Windows OS 用の API であり、Linux 用ではありません。どうにかしてプラットフォームを事前に指定する必要がありますか? または、どうすればこれを修正できますか?
前もって感謝します!
python-3.x - GPUで実行すると、同じ配列への多数の割り当てがpyopencl.LogicErrorを引き起こす可能性がありますか?
pyOpenCL を使用して複雑な計算を行っています。CPU では問題なく動作しますが、NVIDIA GeForce 9400M (256 MB) で実行しようとするとエラーが発生します。Mac OS X Lion (10.7.5) で作業しています
奇妙なことに、このエラーは常に表示されるとは限りません。私の計算でより大きな数を使用した場合(結果としてより大きな反復が発生した場合)に発生するようですが、GPUで実行した場合にのみ発生します。
書き込むべきではないメモリの場所に書き込んでいるわけではありません。コードを単一の作業項目として実行することで、同時修正で起こりうる問題を排除しました。
OpenCL コードを可能な限り単純化し、残ったものから、非常に奇妙な動作をする非常に単純なコードを作成しましたpyopencl.LogicError
。result
これは、配列に対していくつかの割り当てが行われる 2 つのネストされたループで構成されます。この割り当ては、ループの状態に依存する必要さえありません。shape = (1,)
これは、GPU上の単一のスレッド (または作業項目) で実行されます。
奇妙な部分は、結果配列への割り当てのいずれかを削除するとエラーが削除されることです。また、outer の初期値を ((1<<20)-1
たとえば に) 減らすと、エラーも解消されます。これらの場合、コードは正常に戻り、対応するバッファーで正しい結果が使用可能になります。CPU では、エラーが発生することはありません。
OpenCL コードは、PyOpenCL を使用して Python から実行されます。
セットアップに特別なものはありません:
この Python コードでは、 を に設定しresult_buf
、0
OpenCL で計算を実行して、大きな反復で値を設定します。その後、デバイスのメモリからこの値を収集しようとしましたが、ここで問題が発生しました。
最後の行は私に与えます:
この繰り返しの代入がどのようにエラーを引き起こす可能性がありますか?
さらに重要なことは、どうすれば回避できるかということです。
この問題はおそらくプラットフォームに依存しているため、再現が難しいことを理解しています。しかし、これは私がアクセスできる唯一のマシンなので、コードはこのマシンで動作するはずです。
免責事項: OpenCL (または CUDA) を使用したことはありません。GPU が OpenCL をサポートしていないマシンでコードを書きました。私はいつもCPUでそれをテストしました。GPU に切り替えた今、エラーが一貫して発生しないことに不満を感じており、原因がわかりません。
python - GPU で OpenCL を実行しないのはなぜですか (Ubuntu)
マルチバースから python-pyopencl を取得し、amd app sdk をインストールして、ラップトップに pyopencl をセットアップしました。Nvidia ICD を入手するために、ドライバー マネージャーから最新の Nvidia ドライバーを再インストールしました。
私のシステムは、Thinkpad t540p、i7 4700hq、Nvidia gt 730m、64 ビット Ubuntu 14.04 です。
opencl のインストールをテストするために、次の pyopencl の例を実行しました: http://wiki.tiker.net/PyOpenCL/Examples/MatrixMultiply
残念ながら、パフォーマンスは非常に悪く、わずか 2 GFlop/s です。確かにラップトップはもっとうまくいくことができます。だから私はベンダー情報を印刷しました。それは「GenuineIntel」であり、どうやらカーネルは GPU ではなく CPU 上で実行されます。どうすればそれを変更できますか?
pyopencl が GPU を見つけられないようです。
これは「GenuineIntel」のみを返します
コンテキストは次のように作成されます。
アップデート:
これは次の重複のようです:エラー: pyopencl: 特定のデバイスのコンテキストを作成しています