数学建模社区-数学中国

标题: [程序员的野心] 让GPU像CPU一样运行 [打印本页]

作者: sdccumcm    时间: 2013-7-9 17:33
标题: [程序员的野心] 让GPU像CPU一样运行
本帖最后由 sdccumcm 于 2013-7-9 17:37 编辑

GPU代表的是图形处理单元,但是,这些小小芯片除了处理图形功能,还有其它用处。比如,Google使用GPU来为人脑建模,Salesforce则依赖GPU分析Twitter微博数据流。GPU很适合并行处理运算,也就是同时执行成千上万个任务。怎么做呢?你得开发一个新软件,让它挖掘GPU芯片的潜力。最近美国印第安纳大学计算机博士埃里克-浩克(Eric Holk)就作出尝试,他开发了一个应用程序来运行GPU。浩克说:“GPU编程仍然需要程序员管理许多低层细节,这些细节是与GPU执行的主要任务分离 的。我们想开发一个系统,帮助程序员管理这些细节,让GPU在提高生产力的同时仍然有很好的性能。”


  一般来说,电脑计算任务大多由CPU完成。一个CPU处理一个计算序列,也就是所谓的一次处理一个线程,它必须尽可能快地执行。GPU的设计初衷是一次处理多个线程,这些线程处理速度慢很多,但程序可以利用并行优势执行得更快一些,就像超级电脑一样。

  浩克称,今天,CPU已经能执行并行运算了,多核也很流行,但它们主要还是针对单线程优化的。

  GPU术语直到1999年才出现,但在此之前已经有早期的视频处理芯片了,它们于1970-1980年推出。当时,视频处理芯片严重依赖CPU进行图形处理,1990年代图形显卡更流行了,也更强大了,主要是因为3D显卡出现。

  乔治亚科技大学克里斯-麦克拉纳罕(Chris McClanahan)认为,GPU硬件架构已经进化,以前它只是特定单一核心,现在向一组高并行、可编程核心转变,它可以用来处理更通用的计算。毫无疑 问,随着GPU技术的发展,它会增加更多可编程性、更多并行性,变得越来越像CPU,可以用于通用计算。麦克拉纳罕说,CPU和GPU最终会融合。同时, 开发者也开始挖掘GPU的能力,用于不同的应用中,包括物理系统建模、强化智能手机等。

  浩克解释道:“GPU的内存带宽也比CPU高很多,在对海量数据进行简单计算时,它的效率更好。”

  已经有一些GPU编程语言存在,包括CUDA和OpenCL。汉克开发了新语言Harlan,它可以控制GPU。实际上,Harlan被编译成 OpenCL。但与其它语言不同,Harlan语言的抽象思维更多与高级编程语言相近,比如Python、Ruby。浩克称:“Harlan的另一个目标 是想回答一个问题:如果从一开始就开发一门语言,它最初的目标就是支持GPU编程,那会怎样呢?目前的大多系统将GPU编程嵌入到现有语言中,开发者不得 不处理旧语言的所有问题。Harlan可以让开发者更好地为目标硬件、程序作决策。”
  Harlan语法基于Scheme,它是Lisp语言的现代变种,Scheme是所有好语言的始祖。为了让编程语言更“正常”一些,浩克还用到 了Rust语言,这种语言主要面向开发系统,它可以操作硬件底层。浩克的目的是让程序员编写的代码更有效,因为Harlan能生产更好的GPU代码。

000.png (464.33 KB, 下载次数: 408)

000.png


作者: 厚积薄发    时间: 2013-7-10 08:43
GPU技术出发点挺好,但是安全性不好,容易被黑客攻击
作者: sdccumcm    时间: 2013-7-10 10:46
有机会学习一下这些新的技术      
作者: 悍马你好    时间: 2013-7-16 16:05
那是不是说GPU可以和CPU做在一起呢?
作者: 星火燎原1992    时间: 2013-7-16 19:14
虽不懂但觉厉
作者: 帝国的优伶    时间: 2013-7-16 21:09
个人觉得GPU参与运算是大势所趋,也是物尽其用的一种方法,减少了计算资源的浪费和一些硬件的过度购买。目前来讲,软件方面遇到的问题大于硬件层面上的,还需要广大程序员尝试开发,目前来说,我只用过暴风转码这种GPU协助CPU工作的软件,而且这种软件有较高的局限性,有的支持N卡,有的支持A卡,让人用着捉急
作者: Heathcliff26    时间: 2013-7-17 08:56
不明觉历 好高端的样子
作者: w785485068    时间: 2013-7-17 09:20
1111111111111111111111111111111111111
作者: 他山石    时间: 2013-7-30 08:37
这确实可以打开对于cpu的一些见解和认识!
作者: polgageorge    时间: 2013-8-25 12:50
异想天开:有没有可能把CPU和GPU编程语言搞成一个整体呢?
作者: 实干家    时间: 2013-8-26 21:08
又长见识了,谢谢楼主!
作者: Rain的雨    时间: 2013-8-29 08:43
不错,不错,呵呵
作者: Gone_wind    时间: 2013-10-24 22:06
感觉非常不错哦
作者: J.Dempsey    时间: 2013-10-31 16:31
好东西!!!!
作者: sdccumcm    时间: 2013-10-31 22:26
J.Dempsey 发表于 2013-10-31 16:31
好东西!!!!


作者: 燃烧的是灵魂    时间: 2013-11-6 10:38
听过。。。
作者: 燃烧的是灵魂    时间: 2013-11-6 10:38

作者: monsieur12345    时间: 2013-12-3 12:56
Good Idea!
作者: zhaoyuan020    时间: 2014-1-23 13:01
一点儿都不懂啊。。。。。。
作者: 李鼎权    时间: 2014-2-13 19:18
很不错~~~~~~~~~~~~~~~




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5