2 li6823456 li6823456 于 2014.12.04 10:23 提问

GPU与CPU同时并行问题 50C

我现在在用Fortran对一个随机方程进行模拟。需要计算大量的样本,每个样本之间互相独立,并且每个样本返回的值很简单,只有两个浮点值,但每个样本的计算量很大。我现在用omp对每个样本在CPU上建立一个样本进行计算。但感觉还是不够快。最近想把显卡用上。但研究了一下OpenCL和CUDA,现在只能在仅显卡上做。我有两颗E5,如果只用显卡感觉挺浪费。能不能让CPU和GPU同时计算不同的样本。曾经在论坛上搜到在OpenCL的上下文设置一下就成,但找了些资料没头绪。求大神指点一下。如果能把CUDA和OpenCL的实现方法分别说一下就更好了。谢谢。

4个回答

caozhy
caozhy   Ds   Rxr 2014.12.04 15:42

GPU比CPU快大约10倍,所以算上CPU其实也快不了许多。如果非要榨干那么一点CPU的性能,还有个偷懒的办法就是用模拟器把CPU模拟成GPU。

li6823456
li6823456 但我这有两颗E5,显卡倒不是很好,只是Quadro k600,只用显卡的话感觉会得不偿失。所以想CPU算一部分样本,GPU算一部分样本。现在用CUDA和OpenMP到是可以做到CPU和GPU同时算,但是负载上很难做到均衡。不知对均很负载有没有什么好办法?
接近 3 年之前 回复
chao56789
chao56789   2015.01.15 18:40

可以实现你说的同时计算不同的样本

oyljerry
oyljerry   Ds   Rxr 2015.01.15 19:17
  • 通过实现,自己调整负载等,让CPU,GPU达到一个平衡。
wangyaninglm
wangyaninglm   Ds   Rxr 2015.01.15 19:29

opencl是异构计算的框架,cuda只能n卡用,推荐用opencl,并且opencl具有一定的可移植性,intel的部分带显卡的处理器也能用,并且cuda也支持opencl不过
异构计算这块本身就是一个大坑,你乱七八糟配了一大堆库,最后自己都乱了

Csdn user default icon
上传中...
上传图片
插入图片