我在 pycuda 中有一个有效的共轭梯度方法实现,我想对其进行优化。它使用自写的矩阵向量乘法和 pycuda-nativegpuarray.dot
和gpuarray.mul_add
函数
kernprof.py/line_profiler
在一次调用中使用最多返回时间 (>60%)的程序进行分析,直到收敛花费gpuarray.dot()
。(大约 0.2 秒)所有后续调用gpuarray.dot()
大约需要 7 微秒。所有调用都具有相同类型的输入向量(大小:400 双打)
有什么理由吗?我的意思是最后它只是一个常数,但它使分析变得困难。我想在 pycuda 邮件列表中提问。但是我无法使用@gmail.com 地址订阅。如果有人对奇怪的.dot()
行为或我无法订阅该邮件列表有任何解释,请给我一个提示;)