問題タブ [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.
python-2.7 - pyopencl のインデックス付き配列に書き込む
やあ、私は pyopencl でこのコードを書いてスパース ランダム ベクトルを取得しましたが、問題はインデックス付き配列に値を書き込めないことです。何が問題なのですか? 出力は常にゼロ!!
ここに私のコードがあります
kernel - OpenCL - READ_ONLY または WRITE_ONLY バッファーを使用する理由
ではOpenCL
、バッファにREAD_ONLY
またはのフラグを付けるとパフォーマンス上の利点はありますかWRITE_ONLY
?
これkernel
は私がよく目にするものです (a はREAD_ONLY
b ですWRITE_ONLY
):
kernel
グローバルメモリの使用量が少ないため、これはより良いようです( a is READ_WRITE
):
READ_ONLY
およびWRITE_ONLY
フラグは、デバッグとエラーの検出を支援するために存在しますか?
numpy - pyopencl.array.Array を使用する理由
PyOpenCL には、OpenCL バッファーを作成する 2 つの方法があります。
pyopencl.Buffer
numpy 配列を受け取り、それをバッファーに変換します。
pyopencl.array.Array
numpy 配列を取り、それを PyOpenCL 配列に変換します。このオブジェクトは numpy 配列のように編集できますが、呼び出し時にバッファーを提供します.data
。
どちらかを選択するパフォーマンス/機能上の理由はありますか? それとも、コードを読みやすくするものを選択する必要がありますか?
pyopencl - pyopencl.RuntimeError: clWaitForEvents が失敗しました: 待機リスト内のイベントの実行ステータス エラー
時々、自分のマシンで PyOpenCL を実行し続けることができなくなります。これは、それを使用しているプロセスを強制終了すると、時々発生します。オンラインで見つけた例を含む、すべてのpyopenclスクリプト/カーネルで、次のエラーが発生します。
フォームの呼び出しに続く
または a = kernel.(queue,gs,ls,...) a.wait()
マシンを再起動すると問題は解決しますが、これは面倒な回避策です。誰かが似たようなことに遭遇し、物事をリセットする方法を知っていますか?
ありがとうございました
python - PyOpenCL を使い始める
私は最近、GP-GPU (汎用グラフィックス プロセッシング ユニット) の能力を発見しました。それを利用して、1 台のマシンで「重い」科学計算と数学計算 (さもなければ大きな CPU クラスターを必要とする計算) を実行したいと考えています。
GPU で動作するインターフェイスがいくつかあることは知っていますが、最も顕著なものは CUDA と OpenCL です。後者は、NVIDA カードのみではなく、ほとんどのグラフィックス カード (NVIDIA、AMD、Intel) で実行できるため、CUDA に対して有利です。私の場合、通常の Intel 4000 GPU を使用していますが、これは OpenCL とうまく連携しているようです。
次に、PyOpenCL をさらに使いこなす方法を学ぶ必要があります。だからここに質問があります:
PyOpenCL の使用を開始するにはどうすればよいですか? 前提条件は何ですか?Python や OpenCL の経験が本当に必要ですか?
私のバックグラウンドは fortran であり、実際のところ、主に偏微分方程式の解決と行列の対角化を扱う長い fortran コードを python (または pyopencl) に変換して並列化する必要があります。
関連する 2 つの Web サイトhttp://enja.org/2011/02/22/adventures-in-pyopencl-part-1-getting-started-with-python/とhttp://documen.tician.de/を読みました。 pyopencl/ですが、初心者 (つまり、ダミー) にはあまり役に立ちません。
何から始めたらいいのかわからない。私は、pyopencl で単純な数学と線形代数を並列化する方法を知るためだけに、この分野の専門家になることを熱望していません。
どんなアドバイスや助けも大歓迎です!
opencl - opencl の累積合計
次のようにopenclで累積合計を実装しようとしました:
pyopencl を使用してこのコードを呼び出しました。
ただし、最初の 32 個の数字は正しく、その後は間違っています (低すぎます)。これはワークグループのサイズと関係がありますか? これを修正するにはどうすればよいですか?
opencl - pyopencl 配列オフセット制限の回避
PyOpenCL の制限を回避する方法はありますか?
で失敗します
pyopencl.array.ArrayHasOffsetError: 試行中の操作は、バッファの先頭からのオフセットで始まる配列をまだサポートしていません。
私は試した:
これは時々うまくいくようですが、それ以外の場合は次のようになります。
pyopencl.LogicError: clCreateSubBuffer が失敗しました: 無効な値
opencl - PyOpenCL での argmin/argmax
PyOpenCL で argmin または argmax をどのように記述しますか? ワークグループごとに argmin/min を計算し、その後の呼び出しを使用してこれらを減らす必要があると思います。