私は最適化したい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()
動作の説明を持っている場合、またはそのメーリング リストに登録できない場合は、ヒントを教えてください ;)