b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

gpu高性能运算之cuda_高性能计算_gpu高性能计算之cuda

电脑杂谈  发布时间:2017-01-30 22:00:07  来源:网络整理

学习CUDA已经有个把月了,感觉自己学习一门新技术的第一个阶段已经接近尾声,对于一些基本的东西,学习的收获应该作一个总结,我是一个喜欢总结的人。

CUDA是异构编程的一个大头,洋洋洒洒的看了写资料,但是,感觉这个技术没有像C++或者Java那样有自己的权威的《编程思想》来指导系统学习,总是感觉心里不踏实,是不是自己还没掌握深入、或者说心里没底气说自己已经入门了、已经熟悉了、已经精通了。站在一个初学者的角度,作为一个笔记式的记录,讲解自己学习和理解CUDA过程中的一些列想到的、碰到的问题。享受一个东西不一定是结果,可以是从无知到了解到精通的这个整个过程。

1 给自己提几个问题

这个问题如果我回答是,纯粹为了掌握一门新的技术,如果你还是学生则可以,如果你是一个手里有项目的工程师,那么,我觉得没什么必要去学这个东西。我个人理解CUDA是计算机里面的边缘技术,是对程序执行性能的提高的一种方式,可以理解成一个工具。工具这种东西,你需要用的时候再去学,你不需要用的时候,你知道有这回事情就可以了。如果你用不到的东西,你也很贪心什么都去学,第一学不精,第二计算机的技术太多太广,对应我这样的智商一般的人来说是不靠谱的。

我要学习CUDA,因为项目的任务可分解性较大,粒度相关性小,某项目大概一个计算任务可以分解成3000*3000*300规模的计算,而且这些元素之间完全独立。又加入,你需要对全市100万人,每个人计算下该个体的每年的收入与支出的净值(从1900年计算到2000年),淡然有人说放excel中计算不就得了,好吧……我只是讲个通俗点的例子。那么这个计算规模是1000000*10,倘若要对每个人每年在做点其他什么高级的算法得出一个什么指数,恐怕excel还是实现起来不太容易。所以,这种并行度很大的问题,我们可以考虑用CUDA来解决。也许你也知道,搞图像的,CUDA就显得很重要啦。

学习新的技术,我喜欢和之前学过的某个还熟悉的东西做为比对,这样理解起来可能会快一些。比如学Java的时候,我想着C++,学UML的时候,我想着面向对象编程,学CUDA呢?我有什么么?可能很会没有异构编程的历史。我很幸运,之前弄过半年的OpenMP,对的——多核编程技术。后来我了解到,如果是多个GPU,是需要用到OpenMP来做的。OpenMP本身和CUDA好像并没什么关系,但是,片上多核的并行算法是很想通的。很好的一个例子是:奇偶排序。哈哈,给自己提了点学好CUDA的信心。

好了,明白自己的需求和基础,给自己一个学习的定位,什么地方该花时间去琢磨,相比应该很清楚。

2 你好,GPU!

GPU有两大开发商——英伟达和AMD,支持CUDA的是英伟达,很好啊,之前买电脑是有先见之明的,买了英伟达的显卡——GT520,不是特别高端,和单位的GTX650ti2G比起来,有那么一点逊色,但是,好歹可以跑CUDA!

英伟达支持CUDA编程的显卡型号从G8800开始,都是可以的。一开始作为图像处理用,而今,天文地理、数学金融、医疗军事等等,都开始尝试发挥GPU的优势。

GPU的计算核心也是隔年换代,现在已经倒GK10X了,计算能力也是逐渐提升,目前已经最好的有3.0。GPU的架构从原始的到费米的,再到开普勒的,我们没必要去一个个了解,我们先了解GPU的这个大概的历史,免得和人交谈说不出一和二,脱离菜鸟嘛!

可以这样的去理解,单核CPU多线程并行,是感官上的并行,世界上在CPU上还是串行指令在跑;而在GPU上,才叫真正的并行!需要介绍下CUDA1.0开发包是支持在CPU上模拟GPU开发的,其原理就是用多线程来模拟;而现在的版本就不支持了。最新的是5.0的,官网上是下不到之前的了,反正我是找到腿软了还没找到。1.0是古董了!如果你有,一定要给我开开眼见哦。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29642-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...