cuda by example 这本书中第五章计算向量点积的例子是不是有问题啊?

就是大力水手 2011-07-21 09:53:14
先是自己写了一下,结果和实际结果有出入,精确度不够。后来直接跑源代码,有同样的问题:

blockDim.x(threadPerBlock)是确定的:256;gridDim.x(blockPerGrid)由向量长度N和blockDim.x决定:blockPerGrid=min(32,(N+threadPerBlock-1)/threadPerBlock).


在这种情况下,如果(N+threadPerBlock-1)/threadPerBlock较小(<32),也就是每个线程只需要计算一次乘法,那么结果就是精确的,否则,就只有前面6、7位是精确的。

想问问有没有跑过这个程序的人知道是咋回事啊??谢谢啦~~
...全文
220 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
stephenliu1989 2011-08-04
  • 打赏
  • 举报
回复
如果怀疑CUDA精度问题,可以用同样的算法在CPU上做个,二者比较下。我做过一些测试,CUDA确实有点点误差,不过不大
beyond071 2011-08-01
  • 打赏
  • 举报
回复
好像书中有说过,但记不起来具体在哪里了,应该是和浮点数累加(大的浮点数加小的浮点数,小的浮点数的低位被略去)的误差有关。

374

社区成员

发帖
与我相关
我的任务
社区描述
CUDA on Linux
社区管理员
  • CUDA on Linux社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧