cusparseDcsrsv_solve在tesla p100上很慢

  • 1 replies
  • 212 views
cusparseDcsrsv_solve在tesla p100上很慢
« 于: 七月 06, 2020, 03:31:24 pm »
我按照以下说明尝试了incomplete cholesky conjugate gradient法:
https://docs.nvidia.com/cuda/incomplete-lu-cholesky/index.html

计算结果是正确的,但是速度很慢
查到是因为在这个API上花了太多时间:cusparseDcsrsv_solve
而且分别在两台电脑上做了测试,
结果在Tesla P100上的时间比在GTX 1050上花的还多。
大约5000*5000的矩阵,Tesla P100 一次迭代 0.13秒左右,GTX 1050一次迭代0.085秒左右。

请问是什么原因?
怎么优化才能提高在Tesla P100上的性能?
« 最后编辑时间: 七月 06, 2020, 03:33:15 pm 作者 ctn406 »

Re: cusparseDcsrsv_solve在tesla p100上很慢
« 回复 #1 于: 七月 12, 2020, 08:16:20 pm »
我按照以下说明尝试了incomplete cholesky conjugate gradient法:
https://docs.nvidia.com/cuda/incomplete-lu-cholesky/index.html

计算结果是正确的,但是速度很慢
查到是因为在这个API上花了太多时间:cusparseDcsrsv_solve
而且分别在两台电脑上做了测试,
结果在Tesla P100上的时间比在GTX 1050上花的还多。
大约5000*5000的矩阵,Tesla P100 一次迭代 0.13秒左右,GTX 1050一次迭代0.085秒左右。

请问是什么原因?
怎么优化才能提高在Tesla P100上的性能?

如果你的时间测量是准确的话, 考虑到P100的双精度性能很好, 而1050直接双精度是渣, 这种情况下还能后者算得快, 只能让人怀疑是否5000*5000矩阵里面太过稀疏, 导致实际上没多少并行的计算量, 从而让主频高的1050跑过了P100. 暂时找不到其他原因了.