cuda大神,CPU与GPU来回拷贝太耗时间了,即便GPU计算快
linux吧
全部回复
仅看楼主
level 11
夕西行
楼主
查资料如下:
核函数的执行在主机端看来是异步的。即执行kernel的语句调用完,立即返回,事实上GPU端仍在执行kernel过程中。从设备拷贝回主机时,需要等待GPU执行的结果。所以最终时间应该包括了核函数执行的时间和数据拷贝会主机的时间。
那么,GPU计算快难道是假的?即便计算快,但是拷贝太耗时间了,就没有优势了呀。
2020年02月05日 13点02分
1
level 9
EchoResonant
所以异构计算程序编写比较复杂呢,
而且不是所有问题都适合异构计算的。
要让GPU计算效率高,
首先要将问题离散化成若干关联度很低的小问题,
然后要对多级内存体系合理划分以求用计算时间隐藏数据延迟,
最后是返回host的结果尽量回避中间结果从而减少数据传输。
2020年02月05日 13点02分
2
夕西行
谢谢大牛,如果并行计算,您倾向于用哪个框架,查资料有cuda、openMP等,还是自己用并行思维自己写,或者推荐教程书
2020年02月05日 14点02分
EchoResonant
@夕西行
根据实际需要来吧,简单问题用openmp,流程逻辑上能分成几部分做的优先考虑MPI,计算内容上能分开的如果计算量不是太大,或者精度要求很高也用MPI,计算内容上能接近完全离散开的或计算量很大的,首选GPU。GPU计算首选CUDA,次选OPENCL,如果选用OPENCL,不要选择python方案。
2020年02月06日 00点02分
EchoResonant
@夕西行
CUDA方面资料直接看NV的开发者网站就能入门了,后续的看自己的方向和精力吧。MPI可以看张林波的书,OPENMP很简单,网上找找,最长一周也应该能入门吧,OPENCL可以看David Kaeli的书。另外,多看例程吧。
2020年02月06日 00点02分
1