POPPUR爱换

标题: 对CUDA 的一点期望 [打印本页]

作者: tomsmith123    时间: 2009-7-27 22:00
标题: 对CUDA 的一点期望
CUDA 目前已经成为最大规模应用的GPU HPC 计算系统,国内包括联想,浪潮在内的服务器厂商,已经在其HPC 产品线中配置了Tesla 系统,但就目前我们在联想的系统测试的情况看,开发遇到的困难还是比较多的,主要问题如下:
1. 绝大多数密集计算算法需要从写,而改写的难度相对比较大;
2. 开发平台,测试平台,运行平台的硬件差异,在调优上是不一致的,如果GPU 核心不同,那么调优的困难更大一点;
3. 缺乏目标码级的调试,甚至没有PTX 的调试工具,模拟器的结果和GPU 有差异;
4. 部分库有BUG。
在nVidia 推出新产品和新的CUDA 软件中,希望能够改善相同PTX 在不同硬件的运行差异,也就是说,可以让程序员在任何一代支持CUDA 的开发环境中开发,而调优不会遇到太多的问题。
BUG 可以慢慢改,维持一个相对抽象稳定的描述语言,还是必要的。
改善了CUDA 的可编程性,降低了CUDA 的开发门槛,会推动CUDA 的进一步大规模应用,目前开发行业库,推广行业应用,都有后期维护代码成本大的隐患,解决了这个问题,CUDA 才能落地开花。
作者: 天下18    时间: 2009-7-27 22:43
提示: 作者被禁止或删除 内容自动屏蔽
作者: tomsmith123    时间: 2009-7-27 23:01
LS 的,这些文档是给初学者的,我用CUDA 是从beta开始的。
作者: ic.expert    时间: 2009-7-28 01:10
方向肯定是这样,但是需要具体的方案阿……  希望大牛能赐教一下:〉

流处理这种应用本身就不太好Debug…… 
作者: tomsmith123    时间: 2009-7-28 08:07
4# ic.expert
几个办法吧,建立基于PTX 的模拟器,和硬件一一对应,这是CUDA 目前的办法,但是模拟器的BUG 比较多,也有硬件结构的困难;
增加硬件调试的支持,设立调试模式,记录运行的trace,离线调试,这是可以比较通用的办法;
增加调试的软件支持,自动记录反馈一定条件下的调试信息。
作者: hd4770    时间: 2009-7-28 09:03
- Gt300 is going to suport user debug (i.e. user can pause the execution of kernel and get feedback of current states).
- CUDA library is getting more enhancements, which should be saving user optimization efforts.
- from my experience with CUDA, I typically testing hardware with different thread block sizes combined with memory access patterns, etc to find a optimized parameters for my applications. The testing calibration itself is rather straightforward.
作者: tomsmith123    时间: 2009-7-28 10:35
6# hd4770
user debug 可能还不是太需要,毕竟总体上加速代码比例不大,库的期望不会很高,不是所有计算,都可以调用库完成的,特别是自己的应用,调库的成本相当高。
作者: kaven    时间: 2009-8-24 22:30
这是肯定的,原来的数据结构在并行结构下,连排序算法都给推倒重来了,要彻底换思路,而且还有讨厌的global内存延迟,shared大小限制
作者: tilong-lee    时间: 2009-8-25 04:41
非常的期待之中
作者: RacingPHT    时间: 2009-8-26 11:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: ic.expert    时间: 2009-8-28 01:44
kernel debug? OMG
这个是通用计算的好消息, 游戏的坏消息
目前CUDA的debug功能我认为是最大的问题. 模拟器和硬件的差距相当大.

ps:
一个芯片上debug模块会有多大呢? CPU的话, 至少超过1/10吧?
RacingPHT 发表于 2009-8-26 11:14


通过这段时间和RacingPHT大牛接触,感觉大牛不但思维严谨,而且非常有洞察力,这个代价的确不小,一般Debug行为分三步,首先,你要能提供一种机制让程序在满足XX条件下停下来,然后,确定XX条件被触发时候从哪一个Pipeline Stage内开始Stall指令,最后,你还要决定停下来之后作什么?

第一步,可以使用breakpoint总线地址检测寄存器CounterXX定制寄存器……
第二步,一般来说是ALU Stage,就是所谓的精确异常,但是有的时候做不到,比如G80的体系结构就做不到。
第三步,一般来说就是中断向量入口,对于Many Threading来说,可能更麻烦,因为如果只有一个Thread异常了,那其它Thread怎么办?几万个Thread,怎么看?都用人来看?这不现实。其实这种Debug已经类似于IC Design的Verification了,需要专门的Tesbench可能才可以。不过也很难说,这些都是问题。

这三点决定了HW COst,如果按照CPU的模型来作异常处理,那至少1/10以上的芯片面积来安放这些东西。
作者: hd4770    时间: 2009-8-28 12:55
通过这段时间和RacingPHT大牛接触,感觉大牛不但思维严谨,而且非常有洞察力,这个代价的确不小,一般Debug行为分三步,首先,你要能提供一种机制让程序在满足XX条件下停下来,然后,确定XX条件被触发时候从哪一 ...
ic.expert 发表于 2009-8-28 01:44

cost for debug depends on the architecture. For example, static scheduling and dynamic scheduling have different cost. My guess the cost for gxxx is not big. The real significant cost feature is ECC (8-10% total area).  Rumor said thousands of companies are waiting for TESLA to add ECC.
作者: jiangpeng6    时间: 2009-9-4 08:32
进来看科普
作者: hustlermm    时间: 2009-9-4 15:42
ECC ,内存校验?
作者: 夕阳一刀    时间: 2009-9-11 23:57
期望啊。。。。。。
作者: lik    时间: 2009-9-12 14:16
6# hd4770

Nice. I thought you were an A Fan.
作者: lik    时间: 2009-9-12 14:18
8# eqzero

你说些opencl的具体经验吧. 我没觉得opencl比cuda好多少或者差多少.
作者: vv1984    时间: 2009-9-12 23:26
```````````````````
作者: yhqyhqyhq11    时间: 2009-9-13 18:14
不懂帮你顶一下
作者: yht7300    时间: 2009-9-22 00:40
学习了!
帮忙顶下!

作者: Lancelot365    时间: 2009-10-5 15:28
这贴很学术
作者: Prescott    时间: 2009-10-6 12:46
8# eqzero

你说些opencl的具体经验吧. 我没觉得opencl比cuda好多少或者差多少.
lik 发表于 2009-9-12 14:18

OpenCL约等于CUDA
和当年的EM64T约等于AMD64一样。
作者: sharko    时间: 2009-10-9 17:01
哎,我只想知道什么时候cuda可以很好的支持fluent计算,我的小u顶不住了
作者: Lancelot365    时间: 2009-10-10 14:12
OpenCL约等于CUDA"
作者: farcryman    时间: 2010-1-31 18:04
反正会是有前途的东西,但不要把A的用户排除在外
作者: Edison    时间: 2010-1-31 18:35
反正会是有前途的东西,但不要把A的用户排除在外
farcryman 发表于 2010-1-31 18:04



CUDA C 是 NVIDIA 自己的东西,不可能为 AMD 开发对应的编译器,因为不同厂商的 GPU ISA 都是不一样的。
作者: farcryman    时间: 2010-1-31 19:14
回复 29# Edison


    管理员说的是,小生愚昧
作者: denev2004    时间: 2010-2-4 17:19
CUDA C 是 NVIDIA 自己的东西,不可能为 AMD 开发对应的编译器,因为不同厂商的 GPU ISA 都是不一样的 ...
Edison 发表于 2010-1-31 18:35

其实既然A和I有统一GPU ISA的趋势,我感觉NV不可能不做准备。
作者: riva128    时间: 2010-2-6 13:42
哎,我只想知道什么时候cuda可以很好的支持fluent计算,我的小u顶不住了
作者: szlxw    时间: 2010-3-27 23:04
能压x264吗
作者: 倍耐力    时间: 2010-3-31 07:24
现在都什么N卡具有CUDA?
作者: 35435ng    时间: 2010-3-31 10:09
最好adobe和autodesk都去支持cdua
作者: SevenEleven    时间: 2010-4-12 14:42
哎 一般人玩不转cuda
作者: xyking    时间: 2010-4-13 04:53
CIDA的引用规模已经达到这么大了么,怪不得NVDA最近走势这么好,而且G100在设计上更多的倾向Tesla产品线
作者: talkershadows    时间: 2010-4-23 21:57
matlab 下的jacket  有质的飞跃,尤其是最致命的for循环。。。。
作者: KeyGen    时间: 2010-4-24 15:37
我就知道coreavc的cuda应用真是太好了,国内嘛............吹牛的多。
作者: lvhan    时间: 2010-5-5 13:16
debug靠硬件支持 会很难受的
作者: Edison    时间: 2010-5-6 00:44
debug靠硬件支持 会很难受的
lvhan 发表于 2010-5-5 13:16


现场保留怎么会难受。
作者: lvhan    时间: 2010-5-6 08:50
现场保留怎么会难受。
Edison 发表于 2010-5-6 00:44


针对虚拟机编程不是更友好?java? 当然目前的虚拟机效率是个问题,当然nv的兴趣也未必与在跨平台或者过分的友好,除非野心远超显卡 。。。。
作者: 没完没了    时间: 2010-5-9 11:15
CUDA应该更公开,这样才能有更多的支持,NV太单打独斗了。
作者: Edison    时间: 2010-5-12 15:58
CUDA 是体系架构的名称,"公开“ 这样的说法根本无法套用在上面,这就好像说让 Intel 公开 NetBurst 架构一样,根本就是牛头不对马嘴。

CUDA C 的编译器也是公开的,PTX 也是公开的,所有的这些公开根本不会换来任何的同类型产品竞争公司的结盟。
作者: hpctech    时间: 2010-5-13 00:53
CUDA 是体系架构的名称,"公开“ 这样的说法根本无法套用在上面,这就好像说让 Intel 公开 NetBurst 架构一 ...
Edison 发表于 2010-5-12 15:58


PTX只是虚拟的ISA,最底层的ISA还没有任何正式文档,希望NV能透露一下
作者: mikelp    时间: 2010-7-13 21:06
我就知道coreavc的cuda应用真是太好了,国内嘛............吹牛的多。
KeyGen 发表于 2010-4-24 15:37



Coreavc里支持CUDA使我看到通用运算的未来

PS:最近才第一次用N卡 好感动
作者: glpgyf    时间: 2010-8-29 21:48
数字信号处理中很有用
作者: vividw    时间: 2010-8-30 10:51
计算机 软件 感觉还需要跟上
作者: glpgyf    时间: 2010-9-19 18:22
先在我的信号处理中试试。
作者: glpgyf    时间: 2010-9-19 22:19
感觉很激动,可是N的现状比较艰难,I和A那个也很牛,苹果微软也是牛XX,激动很久怕就像CDMA一样,高通不也悲剧了么,你CDMA再强技术再好人家可就不用。
作者: glpgyf    时间: 2010-9-19 22:19
金钱实在有限,先买张240试试效果。
作者: bbbbbl    时间: 2010-9-24 17:01
....看看到底CPU干掉GPU 还是反之~~~
作者: Illidan2004    时间: 2010-9-24 17:35
不同代确实不太一样 比如Fermi的不同kernel函数就是并行的  GT200是串行的
串行想并行容易  Stream就好了
改成并行了 想串行就不方便了。。。

还有不同显卡的调优参数往往很不一样  开发起来很不方便
作者: Illidan2004    时间: 2010-9-24 17:36
另外就是kernel的debug 开发中是个很严重的问题
作者: Illidan2004    时间: 2010-9-24 17:40
opencl还不够成熟  总体和CUDA差不多的  不过没有仔细研究过 CUDA那些bank conlict之类的东西最麻烦
A卡的主要问题是分支跳转不支持。。 所以性能下降很多




欢迎光临 POPPUR爱换 (https://we.poppur.com/) Powered by Discuz! X3.4