問題タブ [pycuda]
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 - 最初の呼び出しで pycuda.gpuarray.dot() が非常に遅い
私は最適化したいpycudaで共役勾配法の実装を行っています。自己記述の行列ベクトル乗算と pycuda-nativegpuarray.dot
およびgpuarray.mul_add
関数を使用します
1 回の呼び出しkernprof.py/line_profiler
で収束するまでのほとんどの時間 (>60%)が返されたプログラムのプロファイリング。gpuarray.dot()
(約 0.2 秒) 以降のすべての呼び出しにはgpuarray.dot()
、約 7 マイクロ秒かかります。すべての呼び出しは同じタイプの入力ベクトルを持ちます (サイズ: 400 double)
何か理由はありますか?最終的には単なる定数ですが、プロファイリングが難しくなっています。pycudaメーリングリストで質問したかったのです。しかし、@gmail.com のアドレスで登録できませんでした。誰かが奇妙な.dot()
動作の説明を持っている場合、またはそのメーリング リストに登録できない場合は、ヒントを教えてください ;)
cuda - どのGPUを使用するかをPyCUDAに伝えるにはどうすればよいですか?
私のマシンには 2 枚の NVidia カードがあり、どちらも CUDA に対応しています。サンプル スクリプトを実行して PyCUDA の使用を開始すると、次の場所に表示されます: http://documen.tician.de/pycuda/エラーが発生します。
私のコンピューティング GPU はコンピューティング機能 3.0 であるため、sm_30 は nvcc コンパイラの適切なオプションである必要があります。私のグラフィックス GPU は CC 1.2 しかないので、それが問題なのかもしれないと思いました。Linux用のCUDA 5.0リリースをエラーなしでインストールし、すべてのコンパイラコンポーネントとpythonコンポーネントをインストールしました。
どの GPU を使用するかを PyCUDA に明示的に伝える方法はありますか?
cuda - Windows 7 64 ビットに Pycuda 2013.1.1 をインストールします。
こちらの指示に従いました。http://www.lfd.uci.edu/~gohlke/pythonlibs/ (すべて最新のもの)からすべてのパッケージをインストールしました。
無事にインストールできたようです。以下のコードを Ipython で実行しました。
このエラーが発生しました:
ファイル "C:\Python27\lib\site-packages\pycuda\compiler.py"、137 行目、compile_plain
lcase_err_text = (stdout+stderr).decode("utf-8").lower() ファイル "C:\ Python27\lib\encodings\utf_8.py"、16 行目、デコードで codecs.utf_8_decode(input, errors, True) を返します
この問題を解決するには?私は数日間苦労しました。
cuda - (py)CUDA のグリッドとブロックの次元
(py)CUDA のブロックとグリッドの寸法について質問を受けました。ブロックの合計サイズには制限があることは知っていますが、グリッドには制限がありません
また、実際のブロックサイズはランタイムに影響します。しかし、私が疑問に思っているのは、256 スレッドのブロックがある場合、(256,1) のように開始するか、(128,2) のように開始するか、(64,4) などのように開始するかによって違いがあるかどうかです。 .
違いがある場合: どちらが最速ですか?