对CUDA 的一点期望
CUDA 目前已经成为最大规模应用的GPU HPC 计算系统,国内包括联想,浪潮在内的服务器厂商,已经在其HPC 产品线中配置了Tesla 系统,但就目前我们在联想的系统测试的情况看,开发遇到的困难还是比较多的,主要问题如下:1. 绝大多数密集计算算法需要从写,而改写的难度相对比较大;
2. 开发平台,测试平台,运行平台的硬件差异,在调优上是不一致的,如果GPU 核心不同,那么调优的困难更大一点;
3. 缺乏目标码级的调试,甚至没有PTX 的调试工具,模拟器的结果和GPU 有差异;
4. 部分库有BUG。
在nVidia 推出新产品和新的CUDA 软件中,希望能够改善相同PTX 在不同硬件的运行差异,也就是说,可以让程序员在任何一代支持CUDA 的开发环境中开发,而调优不会遇到太多的问题。
BUG 可以慢慢改,维持一个相对抽象稳定的描述语言,还是必要的。
改善了CUDA 的可编程性,降低了CUDA 的开发门槛,会推动CUDA 的进一步大规模应用,目前开发行业库,推广行业应用,都有后期维护代码成本大的隐患,解决了这个问题,CUDA 才能落地开花。 LS 的,这些文档是给初学者的,我用CUDA 是从beta开始的。 方向肯定是这样,但是需要具体的方案阿…… 希望大牛能赐教一下:〉
流处理这种应用本身就不太好Debug…… 4# ic.expert
几个办法吧,建立基于PTX 的模拟器,和硬件一一对应,这是CUDA 目前的办法,但是模拟器的BUG 比较多,也有硬件结构的困难;
增加硬件调试的支持,设立调试模式,记录运行的trace,离线调试,这是可以比较通用的办法;
增加调试的软件支持,自动记录反馈一定条件下的调试信息。 - 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. 6# hd4770
user debug 可能还不是太需要,毕竟总体上加速代码比例不大,库的期望不会很高,不是所有计算,都可以调用库完成的,特别是自己的应用,调库的成本相当高。 还是统一到opencl才对 这是肯定的,原来的数据结构在并行结构下,连排序算法都给推倒重来了,要彻底换思路,而且还有讨厌的global内存延迟,shared大小限制 非常的期待之中 [biggrin> kernel debug? OMG
这个是通用计算的好消息, 游戏的坏消息
目前CUDA的debug功能我认为是最大的问题. 模拟器和硬件的差距相当大.
ps:
一个芯片上debug模块会有多大呢? CPU的话, 至少超过1/10吧? kernel debug? OMG
这个是通用计算的好消息, 游戏的坏消息
目前CUDA的debug功能我认为是最大的问题. 模拟器和硬件的差距相当大.
ps:
一个芯片上debug模块会有多大呢? CPU的话, 至少超过1/10吧?
RacingPHT 发表于 2009-8-26 11:14 http://we.pcinlife.com/images/common/back.gif
通过这段时间和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以上的芯片面积来安放这些东西。
通过这段时间和RacingPHT大牛接触,感觉大牛不但思维严谨,而且非常有洞察力,这个代价的确不小,一般Debug行为分三步,首先,你要能提供一种机制让程序在满足XX条件下停下来,然后,确定XX条件被触发时候从哪一 ...
ic.expert 发表于 2009-8-28 01:44 http://we.pcinlife.com/images/common/back.gif
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. 进来看科普 ECC ,内存校验? 期望啊。。。。。。[sweatingbullets> 6# hd4770
Nice. I thought you were an A Fan. 8# eqzero
你说些opencl的具体经验吧. 我没觉得opencl比cuda好多少或者差多少. ``````````````````` 不懂帮你顶一下 学习了!
帮忙顶下! 有人用过PS CS4的CUDA加速功能吗,你们觉得效果怎么样 这贴很学术 8# eqzero
你说些opencl的具体经验吧. 我没觉得opencl比cuda好多少或者差多少.
lik 发表于 2009-9-12 14:18 http://we.pcinlife.com/images/common/back.gif
OpenCL约等于CUDA
和当年的EM64T约等于AMD64一样。 哎,我只想知道什么时候cuda可以很好的支持fluent计算,我的小u顶不住了