GPU与CPU同时并行问题

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

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

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

  • 通过实现,自己调整负载等,让CPU,GPU达到一个平衡。

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