程序员的野心:让GPU像CPU一样运行

开发 后端 项目管理
美国印第安纳大学计算机博士Eric Holk最近开发了一个应用程序来运行GPU,挖掘出了GPU芯片的潜力,使GPU能同时执行成千上万个任务。

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

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

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

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

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

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

已经有一些GPU编程语言存在,包括CUDA和OpenCL。Harlan 开发了新语言Harlan,它可以控制GPU。实际上,Harlan被编译成OpenCL。但与其它语言不同,Harlan语言的抽象思维更多与高级编程语言相近,比如Python、Ruby。Holk 称:“Harlan的另一个目标是想回答一个问题:如果从一开始就开发一门语言,它最初的目标就是支持GPU编程,那会怎样呢?目前的大多系统将GPU编程嵌入到现有语言中,开发者不得不处理旧语言的所有问题。Harlan可以让开发者更好地为目标硬件、程序作决策。”

Harlan语法基于Scheme,它是Lisp语言的现代变种,Scheme是所有好语言的始祖。为了让编程语言更“正常”一些,Harlan 还用到了Rust语言,这种语言主要面向开发系统,它可以操作硬件底层。Holk的目的是让程序员编写的代码更有效,因为Harlan能生产更好的GPU代码。

原文链接:http://www.wired.com/wiredenterprise/2013/07/gpu-programming-language/

译文链接:http://it.sohu.com/20130705/n380749330.shtml

责任编辑:陈四芳 来源: 搜狐IT
相关推荐

2018-10-25 22:34:34

机器人人工智能系统

2017-05-22 10:33:14

PythonJuliaCython

2020-02-28 15:49:26

2011-10-27 09:42:19

ASP.NET

2017-10-23 13:22:18

编程顶级程序员编码规则

2017-07-03 15:56:44

自主运行的网络瞻博网络

2014-02-24 00:40:00

2011-10-24 13:07:00

2018-05-25 19:13:01

程序员技能沟通

2009-12-08 14:26:13

大型网络运维

2009-12-08 18:06:12

戴尔存储动车组

2023-04-05 14:19:07

FlinkRedisNoSQL

2021-05-12 08:46:09

电脑电脑网速技巧

2021-04-13 22:30:17

SpringBoot日志微服务

2021-07-23 09:50:12

程序员技能开发者

2012-10-26 12:33:58

视频会议视频通信华为

2021-10-02 10:36:00

YAML编程语言软件开发

2013-12-17 09:02:03

Python调试

2013-12-31 09:19:23

Python调试

2023-05-23 13:59:41

RustPython程序
点赞
收藏

51CTO技术栈公众号