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。

qt17612748665
qt17612748665 GPU里面有很多个处理核心,可以同时执行指令,但是每个处理核心在执行指令的时候比较“粗旷”,不会有很多控制上的优化,速度也不是很高。 CPU理论上是单核心的,近年出了不少多核CPU,即使是多核,每个处理核心也要比GPU的复杂的多,速度快的多,控制也复杂的多,但是带来的缺点就是并行度不高。现在最多也就8核,16核。GPU动辄上百。
3 个月之前 回复
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
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
CUDA 学习(十六)、优化策略1:并行/串行在GPU/ CPU 上的问题分解
一、问题分解        这里的基本议题是:这个问题可以被分解成并行运行的组块吗?也就是,是否有机会发掘出问题中的并发性?假设能够把问题分为多个并发快,那接下来的问题是有多少个并发块?CPU并行化的一个主要限制因素经常是没有足够大粒度(或粗粒度)的并行工作要做。GPU运行成千上万的程序,所有问题需要被分解成上千个块,而不是像CPU那样只执行少数并发任务。问题的分解应该总是从数据开始,考虑执行的
课程总结 -- CPU/GPU并行计算基础(CPU篇)
上学期选修了Prof. Tolga Soyata的“GPU Parallel Programming using C/C++”课程。本文纪录其中的基础要点和关键实现方式。通过本文大家可以了解到:1、如何用CPU进行多线程并行计算;2、CUDA是什么,GPU如何进行并行计算;3、并行计算的优越性;4、内存的应用对程序性能的影响。
caffe-parallel 使用总结(ONLY_CPU)
浪潮的 caffe-parallel 确实实现了数据的并行化,但是使用起来还是和原版的caffe有些出入,毕竟是从一个旧版本fork过去的。对于使用的系统环境和依赖也比原版的多一点要求。下面说说在ubuntu12.04下面怎么搞起来的。 顺便还有cifar10的测试效率
二维稳态热传导的问题CPU/GPU并行求解
二维稳态热传导的问题CPU/GPU并行求解
CUDA入门(六) 异步并行执行解析
为了更好地压榨GPU和CPU,很多时候都使用异步并行的方法让主机端与设备端并行执行,即控制在设备没有完成任务请求前就被返回给主机端。 异步执行的意义在于:首先,处于同一数据流内的计算与数据拷贝都是依次进行的,但一个流内的计算可以和另一个流的数据传输同时进行,因此通过异步执行就能够使GPU中的执行单元与存储器单元同时工作,更好地压榨GPU的性能;其次,当GPU在进行计算或者数据传输时就返回给主机线程
C++ AMP 加速大规模并行计算-GPU和CPU的性能比较
比较一下CPU和GPU的通用计算能力,我的显卡是AMD的,没法使用CUDA……前段时间尝鲜Win8,顺便就下载了一个Visual Studio 11 Beta,发现里面有一个C++ AMP,拿来比较一下。根据目前的资料,只要显卡支持DirectX 11就可以使用 C++ AMP,就是将代码编译成x86和HLSL       比赛的方法是准备一个10000个32位浮点数,对每个浮点数做100000次
cuda 学习 | GPU硬件与并行通信模式
通信方式通信方式主要以课程截图为主……Map 这是一种一一对应的方式。Gather 多对一的方式。Scatter 一对多的方式。Stencil 模板,多对多的方式。 图中左中为输入,左下为输出,不同颜色为不同线程的读取、输出位置。Transpose 转置操作,改变形状、顺序等。 进行合理的顺序改变在数据读取速度上会提升速度。GPU结构从大到小来说,结构为: Kernel -》 B
matlab 查看电脑系统性能(CPU,GPU),并开启并行运算
判断电脑的系统性能,并开启并行运算%-------------------------------------------------------------------------- clear;clc;close all%-------------------------------------------------------------------------- % Load an exa
OpenCL的多GPU和多核CPU异构计算--1
原文:飞鸿惊雪 地址点击打开链接 本文主要探究OpenCL的GPU和多核CPU的异构计算问题,主要简要阐述了什么是OpenCL异构计算,讲述CPU和GPU各自的特点,并且把他们结合起来做异构计算的前景。然后具体讲述在高性能实验室Linux工作站上如何搭建多GPU和多核CPU异构OpenCL环境。最后用实验验证了所安装的OpenCL异构计算环境能够正常工作,说明什么是OpenCL的多GPU
深度学习框架Tensorflow分布式实战多机多卡GPU,CPU并行
首先是坑爹的安装 1. Cuda8.0+Tensorflow10.0+cuDNN5.1.5 2. 链接:https://github.com/tensorflow/tensorflow/tree/r0.10 3. 进去后直接下载zip打包的源码 4. 然后进入解压后的目录./configure 记住最好不要直接git clone最新版,因为这个框架比较新,每天都在更新,很容易出问题。比