Redian新闻
>
大家说说 cuda 和 opencl 吧
avatar
大家说说 cuda 和 opencl 吧# Hardware - 计算机硬件
e*r
1
由于父母不会英文,过去这么多年来美不少次,每次都担心他们转机时会遇到麻烦,所
以就写了一个《在美国转机以及寻找登机口的旅途用语_中英文对照》的文件,给他们
随身带着,在遇到困难时也许可以用到。其中的“机场住宿”一节就是有一次飞机晚点
我爸在当地住了一晚之后加才进去的。虽然现在来往中美的航班上常常可以找到热心的
中国人可以帮忙,不过有这么一份文件在手仍然感觉给父母顺利转机增加了一分把握。
把此文分享给大家,希望对不说英文的父母或者旅游者有所帮助!
mitbbs好像只接受图片附件,所以就将PDF文件发在了iflychina上,链接如下:
http://www.iflychina.net/forum/topic/216855
avatar
w*h
3
知道在版上有很多高手在做数值计算
挖个坑请大家讨论一下 cuda 和 opencl 应该选择哪个,有什么优缺点
性能如何?
操作系统用 win 还是 linux, 亦或是 mac osx? (知道 mac 在系统级别支持 opencl,
而且现在大部分机型都已经转向 ait 的显卡,要开发 cuda 就没办法了)
等等
万分感谢分享宝贵的经验!
avatar
w*g
4
GPU计算基本上是个神话,过几年就要完蛋的。在这上面投资精力不值得。

,

【在 w***h 的大作中提到】
: 知道在版上有很多高手在做数值计算
: 挖个坑请大家讨论一下 cuda 和 opencl 应该选择哪个,有什么优缺点
: 性能如何?
: 操作系统用 win 还是 linux, 亦或是 mac osx? (知道 mac 在系统级别支持 opencl,
: 而且现在大部分机型都已经转向 ait 的显卡,要开发 cuda 就没办法了)
: 等等
: 万分感谢分享宝贵的经验!

avatar
w*h
5
能不能具体说说?多谢

【在 w***g 的大作中提到】
: GPU计算基本上是个神话,过几年就要完蛋的。在这上面投资精力不值得。
:
: ,

avatar
r*y
6
瞎说。x86 CPU以接近瓶颈,而且处理日常事务也基本够用。
。在量子计算以前,也就 GPU技术上市场上潜力都很大,尤其是在物理模拟,图像处理
,游戏方面。

【在 w***g 的大作中提到】
: GPU计算基本上是个神话,过几年就要完蛋的。在这上面投资精力不值得。
:
: ,

avatar
S*I
7
计算能力只是一个方面,GPU对于某些运算在功耗方面相比CPU有很大优势,这点对于移
动产品尤其重要。

【在 r******y 的大作中提到】
: 瞎说。x86 CPU以接近瓶颈,而且处理日常事务也基本够用。
: 。在量子计算以前,也就 GPU技术上市场上潜力都很大,尤其是在物理模拟,图像处理
: ,游戏方面。

avatar
q*o
8
去年中国的天河一号飙到世界第一,用的就是CPU和Nvidia的GPU混合。好像除了天河一
号其他还有几台也是这种异构体系

【在 w***g 的大作中提到】
: GPU计算基本上是个神话,过几年就要完蛋的。在这上面投资精力不值得。
:
: ,

avatar
m*s
9
我学过一点opencl,cuda没学过。这个东西效果还是有的,但是没有吹得那么神。基本
上同价位的cpu和gpu,对于可并行化的计算工作,gpu跑的速度是cpu的10-30倍。那些
吹嘘说达到上百倍加速的基本上都是扯淡可以忽略。10-30倍看起来不多,但是实际上
还是有很大意义的,以前我们要跑1,2个星期的simulation,现在1天不到就跑完了,
这个效率提高还是很明显的。当然任何新东西学起来都有一个过程,算是overhead吧,
但是学会了之后干活还是真的有效的。
opencl学起来挺简单的,其实就是C语言。难点在于如何把要跑的程序并行化,同时要
考虑gpu的硬件特性,比如大量内存操作很慢,但是可以用多个thread来隐藏;要尽量
减少register的应用,也就是程序里那些静态分配的变量;要注意内存的bank
conflict;等等。总的来说,学起来不难,需要了解少量硬件特性。当然我也只是刚入
门,可能还没接触到高深的。但是就我做的项目,基本上实现硬件理论上的加速效果还
是挺容易的。
cuda我只大概看了看,感觉和opencl差得不多,基本上就是同样的架构不同的语句。不
过nvidia对cuda得推广比其他支持opencl的厂商对opencl的推广要努力的多,所以cuda
的资源和应用目前比opencl多,以后估计短时间内也会是这样,等到明年intel的ivory
bridge支持opencl了,市场有可能会有些变化。microsoft的direct compute也是一个
竞争对手,因为这个有directX撑腰,对于熟悉directX的开发者可能更容易上手。
我之所以用opencl是因为这个项目启动的时候项目经理道听途说opencl是跨平台免费的
,cuda是nvidia一家的,可能不是免费的,所以选了opencl,但是硬件还是买的nvidia
的。其实现在看来软件部分都是免费的,都是用硬件在赚钱,而硬件上,至少表面上,
nvidia的推广程度领先于其他这方面的公司。
对于认为gpu并行计算没前途的说法,这个也不对,目前的gpu并行计算只是个附属产品
,硬件都是基于图形卡的,然后有人发现这个多核架构对于解决某些类型的并行计算(
大计算量,小存储读取量)效率很高,于是催生了专门的软件来配套之。其实目前的通
用cpu对于绝大多数计算工作都是overkill,用简单一些的core足亦,然后再数量上取
胜来达到整体速度的提高,毕竟主频已经快到极限了。在此之前,为了实现硬件资源的
效率最大化,fpga是唯一手段,也就是完全根据计算任务的需要来定制一个core,然后
在固定的die size上最大化这个core的数量。gpu介于两者之间,少了fpga的最大化计
算效率,但是提供软件开发的便利。对于计算是end product的产业,比如生物信息学
,计量金融,科学模拟等,gpu同时有运行速度的优势和开发速度的优势。而且相比于
传统的服务器阵列,gpu在体积,功耗,散热方面优势明显,这些也都直接反映在成本
上。对于其他的计算不是end product的产业,fpga->asic还是唯一选择。
avatar
r*n
10
不说别的,现在挖矿就全靠GPU了。
我觉得GPU运算内存是个问题,那么多node共享那么点儿内存,而且每次都得把输入数
据load到GPU内存,算完后再弄回来。对于数据量不大,运算量大的运用不错。如果进
出数据量都很大的话可能时间都浪费在数据传输上了。
至于软件,CUDA, OpenCL这些并没有限定硬件必须是GPU, 现在用GPU是因为显卡便宜,
这些公司是想用硬件来抢占软件规范, 一旦规范化, 将来的硬件平台很可能是多核或者
cell这些. 所以现在M$, Intel都掺和进来了.
avatar
m*5
12
不急用的话上openCL
否则上CUDA
openCL 目前太不给力
而且对程序员来说,这两个差异,没想象中大

,

【在 w***h 的大作中提到】
: 知道在版上有很多高手在做数值计算
: 挖个坑请大家讨论一下 cuda 和 opencl 应该选择哪个,有什么优缺点
: 性能如何?
: 操作系统用 win 还是 linux, 亦或是 mac osx? (知道 mac 在系统级别支持 opencl,
: 而且现在大部分机型都已经转向 ait 的显卡,要开发 cuda 就没办法了)
: 等等
: 万分感谢分享宝贵的经验!

avatar
m*5
13
GPU本就只适合小数据大运算的场景

,

【在 r******n 的大作中提到】
: 不说别的,现在挖矿就全靠GPU了。
: 我觉得GPU运算内存是个问题,那么多node共享那么点儿内存,而且每次都得把输入数
: 据load到GPU内存,算完后再弄回来。对于数据量不大,运算量大的运用不错。如果进
: 出数据量都很大的话可能时间都浪费在数据传输上了。
: 至于软件,CUDA, OpenCL这些并没有限定硬件必须是GPU, 现在用GPU是因为显卡便宜,
: 这些公司是想用硬件来抢占软件规范, 一旦规范化, 将来的硬件平台很可能是多核或者
: cell这些. 所以现在M$, Intel都掺和进来了.

avatar
m*5
14
针对硬件优化很重要!
选择合适的应用也很重要
GPU不是万灵药
但也不是中医

【在 m****s 的大作中提到】
: 我学过一点opencl,cuda没学过。这个东西效果还是有的,但是没有吹得那么神。基本
: 上同价位的cpu和gpu,对于可并行化的计算工作,gpu跑的速度是cpu的10-30倍。那些
: 吹嘘说达到上百倍加速的基本上都是扯淡可以忽略。10-30倍看起来不多,但是实际上
: 还是有很大意义的,以前我们要跑1,2个星期的simulation,现在1天不到就跑完了,
: 这个效率提高还是很明显的。当然任何新东西学起来都有一个过程,算是overhead吧,
: 但是学会了之后干活还是真的有效的。
: opencl学起来挺简单的,其实就是C语言。难点在于如何把要跑的程序并行化,同时要
: 考虑gpu的硬件特性,比如大量内存操作很慢,但是可以用多个thread来隐藏;要尽量
: 减少register的应用,也就是程序里那些静态分配的变量;要注意内存的bank
: conflict;等等。总的来说,学起来不难,需要了解少量硬件特性。当然我也只是刚入

avatar
b*e
15
先用cuda,支持软件多,换过来也容易。
avatar
t*s
16
我mark一哈子
avatar
w*h
17
能不能举几个计算不是end product的产业?

【在 m****s 的大作中提到】
: 我学过一点opencl,cuda没学过。这个东西效果还是有的,但是没有吹得那么神。基本
: 上同价位的cpu和gpu,对于可并行化的计算工作,gpu跑的速度是cpu的10-30倍。那些
: 吹嘘说达到上百倍加速的基本上都是扯淡可以忽略。10-30倍看起来不多,但是实际上
: 还是有很大意义的,以前我们要跑1,2个星期的simulation,现在1天不到就跑完了,
: 这个效率提高还是很明显的。当然任何新东西学起来都有一个过程,算是overhead吧,
: 但是学会了之后干活还是真的有效的。
: opencl学起来挺简单的,其实就是C语言。难点在于如何把要跑的程序并行化,同时要
: 考虑gpu的硬件特性,比如大量内存操作很慢,但是可以用多个thread来隐藏;要尽量
: 减少register的应用,也就是程序里那些静态分配的变量;要注意内存的bank
: conflict;等等。总的来说,学起来不难,需要了解少量硬件特性。当然我也只是刚入

avatar
w*h
18
嗯,目前看起来只有 Apple 一家最坚定的站在 opencl 后面
不知道 opencl 以后的前景如何
cuda 目前看起来不错,不过就是锁定 N 卡平台
而且不能兼容 cpu, 是个很大的限制
否则像 opencl 程序那样,也可以选在在多核 cpu 上运行
是个不小的诱惑
现在 mac 机主用 A 卡了,opencl 成为 mac 平台唯一的选择了
有没有对 cuda 和 opencl 性能做过比较的?
好像所有的文献都说 cuda 性能好于 opencl
这可能和对平台的有针对性的优化有关吧

【在 m********5 的大作中提到】
: 不急用的话上openCL
: 否则上CUDA
: openCL 目前太不给力
: 而且对程序员来说,这两个差异,没想象中大
:
: ,

avatar
w*h
19
挖矿的用 cuda 还是 opencl?
哪个多些?
我主要用来做 CFD, 不知道有没有好的应用例子?

,

【在 r******n 的大作中提到】
: 不说别的,现在挖矿就全靠GPU了。
: 我觉得GPU运算内存是个问题,那么多node共享那么点儿内存,而且每次都得把输入数
: 据load到GPU内存,算完后再弄回来。对于数据量不大,运算量大的运用不错。如果进
: 出数据量都很大的话可能时间都浪费在数据传输上了。
: 至于软件,CUDA, OpenCL这些并没有限定硬件必须是GPU, 现在用GPU是因为显卡便宜,
: 这些公司是想用硬件来抢占软件规范, 一旦规范化, 将来的硬件平台很可能是多核或者
: cell这些. 所以现在M$, Intel都掺和进来了.

avatar
a*e
20
光靠显卡没ECC玩严肃数值运算怕是不行

,

【在 r******n 的大作中提到】
: 不说别的,现在挖矿就全靠GPU了。
: 我觉得GPU运算内存是个问题,那么多node共享那么点儿内存,而且每次都得把输入数
: 据load到GPU内存,算完后再弄回来。对于数据量不大,运算量大的运用不错。如果进
: 出数据量都很大的话可能时间都浪费在数据传输上了。
: 至于软件,CUDA, OpenCL这些并没有限定硬件必须是GPU, 现在用GPU是因为显卡便宜,
: 这些公司是想用硬件来抢占软件规范, 一旦规范化, 将来的硬件平台很可能是多核或者
: cell这些. 所以现在M$, Intel都掺和进来了.

avatar
s*r
21
AMD也把宝压在opencl上。如果是compute-bound的问题
用A 卡,memory-bound用N卡

【在 w***h 的大作中提到】
: 嗯,目前看起来只有 Apple 一家最坚定的站在 opencl 后面
: 不知道 opencl 以后的前景如何
: cuda 目前看起来不错,不过就是锁定 N 卡平台
: 而且不能兼容 cpu, 是个很大的限制
: 否则像 opencl 程序那样,也可以选在在多核 cpu 上运行
: 是个不小的诱惑
: 现在 mac 机主用 A 卡了,opencl 成为 mac 平台唯一的选择了
: 有没有对 cuda 和 opencl 性能做过比较的?
: 好像所有的文献都说 cuda 性能好于 opencl
: 这可能和对平台的有针对性的优化有关吧

avatar
w*h
22
是说 A 卡速度快?
N 卡访问显存速度快?

【在 s****r 的大作中提到】
: AMD也把宝压在opencl上。如果是compute-bound的问题
: 用A 卡,memory-bound用N卡

avatar
m*5
23
确实已经有不少这方面的文章发表了;)
但是可用性上,我个人还是觉得CUDA好得多
但是实际上还是有一些bias, 因为测试只能在N卡上进行
我猜N卡的确可能对CUDA的支持更好一些吧,
其实不用纠结于这个的,编程上我感觉未来会差不多

【在 w***h 的大作中提到】
: 嗯,目前看起来只有 Apple 一家最坚定的站在 opencl 后面
: 不知道 opencl 以后的前景如何
: cuda 目前看起来不错,不过就是锁定 N 卡平台
: 而且不能兼容 cpu, 是个很大的限制
: 否则像 opencl 程序那样,也可以选在在多核 cpu 上运行
: 是个不小的诱惑
: 现在 mac 机主用 A 卡了,opencl 成为 mac 平台唯一的选择了
: 有没有对 cuda 和 opencl 性能做过比较的?
: 好像所有的文献都说 cuda 性能好于 opencl
: 这可能和对平台的有针对性的优化有关吧

avatar
m*s
24
我这个说法并不专业,我指的是那些需要一定计算量,但是最终产品不需要具有通用计
算能力的系统,比如无线通信,医疗设备,移动电子消费品,这些东西需要的算法有些也是
很复杂的,但是最终产品又不能走pc的架构上通用cpu,不管是体积,功耗,还是成本的
限制,也就是基于asic的那些电子产品,因为功能是预订好的,所以asic是性价比最高
的。

【在 w***h 的大作中提到】
: 能不能举几个计算不是end product的产业?
avatar
m*s
25
看应用了,也不是所有的计算对准确度要求都那么高的
有ecc的gpu也有,就是贵些,tesla对应同级别的geforce价格是3-4倍,性能差不多,
不过支持double precision和带ecc,需要的话就多花点钱罗
前几个月nvidia在我们这儿搞了个cuda推介会,请了中国那个最快的大型机的一个教授
来讲,给我感觉就是和奥运世博一样纯粹是为了弄世界第一在烧钱,弄了个那么快的系
统,但是在上面只是跑跑benchmark这种东西。

【在 a***e 的大作中提到】
: 光靠显卡没ECC玩严肃数值运算怕是不行
:
: ,

avatar
m*s
26
显存访问速度看memory bandwidth和memory clock,就我的应用,我没感觉哪家特别快
,计算速度上,大致上A卡的core数目乘以0.4等于N卡的core数目

【在 w***h 的大作中提到】
: 是说 A 卡速度快?
: N 卡访问显存速度快?

avatar
w*h
27
这个 0.4 非常有用!

【在 m****s 的大作中提到】
: 显存访问速度看memory bandwidth和memory clock,就我的应用,我没感觉哪家特别快
: ,计算速度上,大致上A卡的core数目乘以0.4等于N卡的core数目

avatar
w*h
28
有道理,确实是这样
从做 simulation 的角度来讲,就划不来用 fpga 来定制硬件了

【在 m****s 的大作中提到】
: 我这个说法并不专业,我指的是那些需要一定计算量,但是最终产品不需要具有通用计
: 算能力的系统,比如无线通信,医疗设备,移动电子消费品,这些东西需要的算法有些也是
: 很复杂的,但是最终产品又不能走pc的架构上通用cpu,不管是体积,功耗,还是成本的
: 限制,也就是基于asic的那些电子产品,因为功能是预订好的,所以asic是性价比最高
: 的。

avatar
h*n
29
A卡的core定义和N卡不一样
双方的浮点峰值差距不大,但是数学库的数目和质量目前还是天壤之别

【在 m****s 的大作中提到】
: 显存访问速度看memory bandwidth和memory clock,就我的应用,我没感觉哪家特别快
: ,计算速度上,大致上A卡的core数目乘以0.4等于N卡的core数目

avatar
w*h
30

N 卡 + cuda 好很多么?
有没有什么推荐的 A 卡的数学库

【在 h*********n 的大作中提到】
: A卡的core定义和N卡不一样
: 双方的浮点峰值差距不大,但是数学库的数目和质量目前还是天壤之别

avatar
h*n
31
A卡上就是ACML了吧

【在 w***h 的大作中提到】
:
: N 卡 + cuda 好很多么?
: 有没有什么推荐的 A 卡的数学库

avatar
m*5
32
至少不希望N卡一家独大,大家搞学术多用A卡吧
目前做实际的事情还是得用N卡
这样有竞争才有发展,不希望最后只剩N卡一家,A卡变成点缀
avatar
h*n
33
A卡上就是ACML了吧

【在 w***h 的大作中提到】
:
: N 卡 + cuda 好很多么?
: 有没有什么推荐的 A 卡的数学库

avatar
s*r
35
谁说差别不大?AMD的HD 6970的单精度峰值2.7TFlops,Nvida的针对HPC的GPU-Telsa(
C2050)只有1.03Tflops。AMD即将推出的基于Southern Island的
79XX单精度更是达到惊人的12TFlops, 双精度也达到3Tflops.
http://forum.beyond3d.com/archive/index.php/t-59176.html
Nvidia Cuda开发环境相对成熟,目前数学库也多一些。AMD正在基于Opencl
开发BLAS和FFT。

【在 h*********n 的大作中提到】
: A卡的core定义和N卡不一样
: 双方的浮点峰值差距不大,但是数学库的数目和质量目前还是天壤之别

avatar
s*r
36
参见下面这篇文章。Barts是AMD上一代GPU (HD 5870)。
现在的是Cayman (HD 6970, 6990)
www.seas.upenn.edu/~vsampath/cis565/final.pdf

【在 w***h 的大作中提到】
: 是说 A 卡速度快?
: N 卡访问显存速度快?

avatar
w*h
37
Very helpful paper
Thanks a lot :)

【在 s****r 的大作中提到】
: 参见下面这篇文章。Barts是AMD上一代GPU (HD 5870)。
: 现在的是Cayman (HD 6970, 6990)
: www.seas.upenn.edu/~vsampath/cis565/final.pdf

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。