1、深入浅出CUDA的第一个平方和的例子,我改成float数据类型后与CPU结果有较大偏差,貌似7位数的正确,8位数开始出现偏差,是GPU硬件问题吗?那这样不是不能用GPU做大量浮点数据运算了?
2、GPU的并行化方式,这样理解对不对:
每个SM间的block并行
SM上的非active block等待active block运行完进入active状态
SM上active block间串行计算?非计算block可以准备数据
block内的thread一个warp一个warp的串行还是half-warp的串行?
3、grid、block维度如何设计性能最好?是定义thread数量为256,然后数据规模除以thread数得出block数,还是按照书上讲的计算每个SM允许的active block数?假设数据规模足够大,30个SM,每个SM最大8个active block,此时定义240个block与更多的block性能是不是一样的?
4、我测试cudaMemcpy的时间,为什么带宽只有SDK例子运算结果的1/4到1/2的样子?