CUDA入门(一)

最近我也都在看CUDA,自己看书和练习也都搞了一个月了。而且经常在CSDN上逛,也发现了很多问题,所以决定自己写点这方面的东西,方便自己也方便后来人。

根据我的调查,我发现现在的初学者大都是非计算机专业的,都是一些行业内部的人士,比如地震勘探,生物学,流体力学和气象等等这些应用领域的人在学,像我们这种计算机专业在学的还比较少。这些人大都呢都是有C语言基础,但是编程经验方面却比较欠缺(也有不少高手,高手们不要扔砖哈),所以难免被一些小的错误和问题绊住,下面我就简单的说一下我的经验。

大家都知道,CUDA C不是一门新语言,它基于C,只不过扩充了一些东西而已。所以,无论如何,建议在看CUDA之前,先回顾一下C语言,多看看没有坏处,CUDA的书很多都没有说语法的,因为他们都有一个前提——假设读者有一定的C语言基础!看C语言的时候,如果能动手练练那当然更好了。编程不能光看不练。

关于看书方面,目前有好几本书都还是不错的。我哟如下建议,第一本你还是看《GPU高性能编程 CUDA实战》,翻译版的,黑色封面加魔方(其实是GPU线程模型),不贵,原价39.00国币。这本书好的地方就是:基础。作者从最简单的C语言程序入门,循序渐进教你如何一步一步的编CUDA程序。这对新手来说相当重要,入门是关键,“师傅领进门,修行看个人”。

Okay,现在你懂一点了,建议看第二本书,这个可以不叫书,它是英伟达出的一个《CUDA编程指南》,有好几个版本,而且 3.0以后的中文版都是风辰大哥翻译的——如果你水品高,不拦着你看英文原版。看这个有什么好处呢?毕竟这个是人家英伟达自己的东西,他很清楚自己的GPU是怎么回事,规矩是他定的,你最好看看,他的规矩是什么。

第三本就是勇哥那本《GPU高性能运算之CUDA》,为什么现在才看这本书了——呵呵好东西总是后面才出场。它哪里好呢?——它讲了有一些深的东西:1、他讲了不少硬件架构的东西,这个比较难,而且你要看看理解,不容易的东西,我本人本科的时候就最怕硬件的东东呢。2、后面大篇幅的实例代码,有优化的,有大型的案例,这两个也是值得好好看和深究的。所以这些都是需要“基础”和“时间”来好好看的。

第四本,这个可以选择不看,看个人情况了。就是胡文美(Wen-mei W. Hwu)的《大规模并行处理器程序设计》,是影印版的,影印版就是复印版的意思,也即是英文版。胡和David B.Kirk也可以说是英伟达制定规则的参与者,这本书也讲得很细致,有深有浅——由于本人读的也是一般般,所以关于这本书不多说。吐舌头

如果你能坚持看完这几本书(至少前三本),并且能动手做做练习的话,估计你不会有那么多的困惑了。当然很多时候你需要花时间来思考,思考你看到的,你练习的,多问问为什么?——这点我也做的不够好,自我批评下。

另外还有一个问题,就是关于编程,很多人都说,我不是计算机专业的,对编程我不懂,能给我详细说说这个,说说那个么?这一点,我在上大一或者大二的时候也这么说过,可以理解的,但是慢慢你们就会发现,很多时候,很多东西,别人不可能教你,也教不会你。需要你自己去学。IDE 需要自己去摸索,多看帮助文档,不会就去ask 搜索引擎,你的问题我相信很多人都遇到过的,这就是网络时代的好处。还有经验型的东西要多总结:这些错误,一般是什么原因,遇到多了就大概都能猜个80%——别人的经验也可以拿来当自己的用的。

总结一下,我也唠唠叨叨说了一大堆,就两个观点:关于看书和关于编程。希望对新手有个帮助,CUDA出的时间不长,前面的路还很远,希望和大家一起学习。如果哟什么不对的地方,欢迎批评指正,我也是新手来的。



猜你喜欢

转载自blog.csdn.net/AlfaCuton/article/details/7090157