没有合适的资源?快使用搜索试试~ 我知道了~
基于图形处理器GPU的通用计算
需积分: 9 2 下载量 124 浏览量
2011-12-19
19:29:19
上传
评论
收藏 815KB PDF 举报
温馨提示
基于图形处理器GPU的通用计算
资源推荐
资源详情
资源评论
第
!"
卷 第
#
期
$%%&
年
#
月
计算机辅助设计与图形学学报
’()*+,-(./(01)23*4,563663758+ 9 /(01)23*8*,1:5/7
;<=>!"
,
+<>#
0?
@
,
$%%&
原稿收到日期:
$%%&4%A4$#
;修改稿收到日期:
$%%&4%A4A!>
本课题得到国家重点基础研究发展规划项目(
$%%$/BA!$!%$
)、国家自然基金
(
"%%AA%!%
,
"%$$AA%#
)和
*CDC?EFG8E?HI<J)HKLCEDKI
@
<J0?F?M
资助
>
吴恩华,男,
!N&O
年生,博士,研究员,主要研究方向为计算机图形学、科学
计算可视化、虚拟现实
>
柳有权,男,
!NO"
年生,博士研究生,主要研究方向为计算机图形学、计算机动画
>
基于图形处理器(
!"#
)的通用计算
吴恩华
!
,
$
)
柳有权
!
)
!
)
(中国科学院软件研究所计算机科学重点实验室 北京
!%%%P%
)
$
)
(澳门大学科学技术学院电脑与资讯科学系 澳门)
摘 要 伴随着
1/
级微机的崛起和普及,多年来计算机图形的大部分应用发生了从工作站向微机的大转移,这种
转移甚至发生在像虚拟现实、计算机仿真这样的实时(中、小规模)应用中
>
这一切的发生从很大程度上源自于图形
处理硬件的发展和革新
>
近年来,随着图形处理器(
81)
)性能的大幅度提高以及可编程特性的发展,人们首先开始
将图形流水线的某些处理阶段以及某些图形算法从
/1)
向
81)
转移
>
除了计算机图形学本身的应用,涉及到其他
领域的计算,以至于通用计算近
$!A
年来成为
81)
的应用之一,并成为研究热点
>
文中从若干图形硬件发展的历
史开始,介绍和分析最新
81)
在通用计算方面的应用及其技术原理和发展状况,并结合作者自身的实践讨论和探
索其发展前景
>
关键词 图形硬件;图形处理器(
81)
);可编程性;实时计算
中图法分类号
21AN!
!$%$&’(")&
*
+,$-+.
*
)/’/0+%+%!"#
QM3HGM?
!
,
$
)
-KMR<M
S
M?H
!
)
!
)
(
!"#$%"&$%
’
$
(
)$*
+
,&-%./0-1/-
,
213&0&,&-$
(
.$
(
&4"%-
,
)501-3-6/"7-*
’
$
(
./0-1/-3
,
8-0
9
01
:
!%%%P%
)
$
)
(
;-
+
"%&*-1&$
(
)$*
+
,&-%"1721
(
$%*"&0$1./0-1/-
,
<"/,=&
’
$
(
./0-1/-"17>-/51$=$
:’
,
?10@-%30&
’
$
(
A"/",
,
A"/",
)
12,/&’3/ ,=<H
T
UKIGIGCE?
V
KWWCLC=<
V
XCHI<J
V
CED<H?=F<X
V
MICED
,
L?EK<MD?
VV
=KF?IK<HDKHF<X
V
MICE
T
E?
V
GKFD
,
CLCHEC?=4IKXC?
VV
=KF?IK<HDKH XKWW=C<EDX?==DF?=CDMFG?DIG<DCKHLKEIM?=EC?=KI
@
?HW
F<X
V
MICEDKXM=?IK<H
,
?EC XK
T
E?IKH
T
JE<X U<EYDI?IK<HDI< 1/D> 2<?=?E
T
CCZICHIH<W<M[I
,
IGC
XK
T
E?IK<HF<XCDJE<XIGCKHH<L?IK<H<J
T
E?
V
GKFDG?EWU?EC>.<EX?H
@@
C?ED
,
UKIGIGC?WL?HFCXCHI<J
T
E?
V
GKFD
V
E<FCDDKH
T
MHKI
(
81)
)
?HWIGCFEC?IK<H<JKIDHCUJC?IMEC<J
V
E<
T
E?XX?[K=KI
@
,
DFKCHIKDID[C
T
KH
I<IE?HDJCED<XC<JIGC
V
E<FCDDKH
T
DI?
T
CDKHIGC
T
E?
V
GKFD<MI
V
MI
V
K
V
C=KHC<ED<XC
T
E?
V
GKFD?=
T
<EKIGXD
JE<X/1)I<81)>2<<MEDME
V
EKDC
,
CZFC
V
IJE<XIG<DC?
VV
=KF?IK<HDKH
T
E?
V
GKFDKIDC=J
,
81)JKHWDKID
?
VV
=KF?IK<HDKH
T
CHCE?=
V
ME
V
<DCF<X
V
MI?IK<HDKH<IGCEJKC=WD
,
?HWKIF<XCDM
V
?D?G<II<
V
KFJ<EECDC?EFG
KHECFCHI$
!A
@
C?ED>5HIGKD
V
?
V
CE
,
DI?EIKH
T
JE<X?[EKCJKHIE<WMFIK<HI<D<XCGKDI<EKF?=CLCHID<H
T
E?
V
GKFDG?EWU?ECWCLC=<
V
XCHI
,
?WCI?K=KHIE<WMFIK<H?HW?H?=
@
DKDUK==[C
T
KLCHI<IGCICFGHK
S
MC?HWIGC
=?ICDIWCLC=<
V
XCHI<J81)J<E
T
CHCE?=
V
ME
V
<DCF<X
V
MI?IK<HD
,
KHF<X[KH?IK<HUKIG<ME<UH
V
E?FIKFC>
.KH?==
@
,
?WKDFMDDK<HKD
T
KLCHI<
V
E<[CKHI<IGCWCLC=<
V
XCHI
V
CED
V
CFIKLC<J81)KHIGKDEC
T
?EW>
4$
5
6+&7,
T
E?
V
GKFD G?EWU?EC
;
T
E?
V
GKFD
V
E<FCDDKH
T
MHKI
(
81)
);
V
E<
T
E?XX?[K=KI
@
;
EC?=IKXC
F<X
V
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
MI?IK<H
!
引 言
综观计算机图形学的发展进程,可以毫不夸张
地说,计算机图形学的每次重大进展都与图形处理
硬件 的 突 破 密 切 相 关
!"#
世 纪
$#
年 代 初 期,
%&’(&)*
+
,-
.
/-&
(
%,
)
[
0
]
芯片的推出对于近
"#
年来
图形发展和变革产生了巨大的影响
!%,
从设计上
可以由一个寄存器的定制码定制出不同的功能,
分别用于图形流水线中的几何变换、裁剪计算、投
影缩放等
!
在初期设计的
1213
(
1-)&
.
*4)&5246)&*
1(4
.
/-
.
3
+
6)&(
)系列中,
0"
个
%,
单元即可组成完
整的三维图形流水线
!
以
%,
作为核心技术,其设计
者
784*9:4(&6
作为
7,;
所成立的
3%1
公司的产品
在其后的图形发展和工业应用中产生了巨大影响
!
例如,从
3%1
的
%<
直至今天作为事实上图形界面
工业标准的
;
=
&-%<
,一个为人熟知的、最突出的特
点就是将其造型变换与观察变换结合为一体,用
>’5&8?/&@
矩阵栈直接完成其统一的变换过程以及
复杂物体的层次造型
!
而这一特点恰恰是完全秉承
了
"#
年前源于
%,
的最初设计系统
[
0
]
,只不过最初
的设计只使用了
$
层深度的硬件矩阵栈而已
!
令人不无感叹的是,
%,
诞生之前多少年来关
于图形接口标准输出流水线是(如
AB1%3
)否(如
%C3
/
%C3DE
)应该包括造型功能的争论从此变得
无足轻重,而在图形国际标准中将造型变换与观察
变换截然分开处理的理所当然的做法和理论从此
成了过眼云烟
!
再优雅不过的设计也要服从于硬件
运行的最佳效果,因此尽管人们
"#
多年来在使用
%<
/
;
=
&-%<
的
>’5&8?/&@
编程时大感不爽,历经
"#
多年的磨砺,亦变得习惯成自然了
!
图形处理的并行性以及可编程功能一直是图
形硬件发展所追求的目标,这其中的佼佼者莫过于
北卡罗莱那大学在
"#
世纪
$#
年代所设计的
A/F&8
A84-&6
系列图形系统
[
"GH
]
!
其中,
"#
世纪
$#
年代后
期所设计的
A/F&8A84-&6I
作为当时图形处理能力
最强的 处 理 系 统,曾 经 达 到 每 秒 绘 制
0##
万 个
AJ’-
.
模型多边形的能力,这在今天看起来亦是一
个值得惊叹的数字
!A/F&8A84-&6
的高度并行性是由
像素级的驱动单元实现的,其硬件系统可以包括多
达
D"
个数学处理器和
0K
个绘制部件,每个绘制部
件可以对一个
0"$L0"$
像素阵列的每个像素实行
二次多项式的并行计算
!
并行性采用的是
31>E
结
构
!
从某种程度上说,它是一个专用于图形图像处理
的
31>E
结构的并行处理机
!
为此,
A/F&8A84-&6
虽然
具有超级的处理速度,却不能不受
31>E
结构的并行
处理方式所制约,其高效性只适用于那些能够有效地
分解其算法到
31>E
结构上运行的图形应用
!
伴随着
A7
级微机的崛起和普及,多年来计算
机图形的大部分应用发生了从工作站向微机的大转
移,而这种转移甚至发生在像虚拟现实、计算机仿真
这样的实时(中、小规模)应用中
!
实时应用的计算
机游戏的普及亦是这一发展的标志
!
这一切的发生
从很大程度上源自于图形硬件的发展和革新
!
随着
计算技术和集成电路技术的发展,图形硬件的更新
速度迅猛
!%AM
(
%*4
=
J/N6A*’N&66/-
.
M-/)
)自
0OOO
年首先由
-?/5/4
公司
[
I
]
提出来后,其发展的速度是
7AM
更迭速度的
D
倍多
!
目前,图形芯片的主要市
场被
-?/5/4
和
PQ1
这两家公司占领,从高端到低端
都有相应的产品来满足市场
!
新的图形硬件带来一些新的特征
[
KGR
]
,这些特
征概括起来有如下几方面:
(
0
)在顶点级和像素级提供了灵活的可编程
特性;
(
"
)在顶点级和像素级运算上都支持
1,,,D"
位浮点运算;
(
D
)支持多遍绘制的操作,避免了多次
7AM
与
%AM
之间的数据交换;
(
H
)支持绘制到纹理的功能(
2&-5&*G)’GQ&F)S*&
/
=
TSUU&*
),从而避免将计算结果拷贝到纹理这个比较
费时的过程;
(
I
)支持依赖纹理功能,以方便数据的索引访
问,可以将纹理作为内存来使用
!
A/F&8A84-&6
图形系统是利用通用机的结构实
现图形并行处理的,而
%AM
却是完全专用于图形
输出流水线的处理和加速
!
因此当
%AM
的功能越
来越强时,与图形有关的处理便自然而然地从
7AM
向
%AM
转移
!
最先发生的转移是最靠近应用程序
的几何变换部分,包括造型变换和观察变换;其次
是局部或特殊光照效果的计算和生成
!
当顶点级和
像素级的可编程功能越来越灵活时,图形本身的处
理速度和灵活性都得到了前所未有的提高
!
而当
%AM
内部像素级的纹元达到可以参与编程的运算
时,它从某种程度上模拟了类似于
A/F&8A84-&6
处理
单元的部分功能,以至于向着可作通用计算的方向
发展
!
这时,基于
%AM
的通用计算便应运而生了
!
基于
%AM
的通用计算(
%&-&*48AS*
=
’6&%AM
,
%A%AM
)指的是利用图形卡来实现一般意义上的计
"#K
计算机辅助设计与图形学学报
"##H
年
算
[
!
]
,而不单纯是绘制
"
本文关注的就是如何利用
#$%
来实现矢量、矩阵的基本代数运算,然后在这
个基础上如何实现一些相对复杂的运算(如线性方
程组的求解),从而实现复杂应用问题的求解
"
相对于以前采用固定渲染管道的图形硬件,上
述提到的这些新特征无疑加快了
#$%
在通用计算
方面的应用
"
文献[
&
]简要阐述了
#$%
的发展历
史
"’(()
年被认为是图形硬件被用来做通用计算的
一个里程碑
[
*(
]
,文献[
**
]也认为
#$%
在
’(()
年已
经进入计算的主流
"
采用图形硬件来做通用计算的
主要目的是为了加速,加速的动力来自这些新硬件
所具有的以下主要优势:
(
*
)一定的并行性
"
这一功能主要是通过多个
渲染管道和
+#,-.
个颜色通道同时计算来体现
的,另外在一个时钟周期内可以同时获取
’
个甚至
更多副纹理
"
顶点程序的多个渲染管道意味着一个
时钟周期可以并行处理多个顶点,而对于像素程序
同样如此
"
相对于并行机而言,图形卡提供的并行
性虽然很弱,但它在十分廉价的基础上为很多应用
提供了一个很好的并行方案,尤其是对于图形本身
的应用来说
"
(
’
)高密集的运算
"
由于图形卡内部的内存接
口位宽大于
/$%
上的位宽,如
#01234015
的内存
位宽达
’67
位,显然高于
/$%
上
)’
位的位宽,这样
整个计算的带宽大大提高
"#$%
相对于
/$%
来说,
更适应传输大块的数据,虽然
/$%
上有
/8490
可以
加速整个计算过程,但
/$%
上的
/8490
相对于图形
卡显存来说太小,一般只有
7.:,
,而现在的显存大
多都在
7.;,
以上,由此可见一斑
"
(
)
)减少了
#$%
与
/$%
的数据通信
"
尤其是
当整个应用针对图形生成的时候,不再需要在
/$%
与
#$%
之间进行多次数据交换,从而可以将
/$%
解放出来做其他的事情
"
这些优势使得
#$%
比
/$%
更适用于流处理计算,因此
#$%
也被认为是
一个
<=;>
的并行机或者流处理器
[
*’
]
,可以用于处
理大规模数据集,使得应用得到加速
"
相比之下,
/$%
本质上是一个标量计算模型,而计算单元偏
少,主要针对复杂控制和低延迟而非高带宽进行了
若干优化
"
图
*
所示为目前
#$%
的渲染管道示意
图,其中深色块表示目前具有可编程性
"
实时绘制语言的出现无疑更是加快了
#$%
在
通用计算上的应用,如
/
?
,
@A<A
以及
#A<A
或者
其他更高级的面向通用计算的绘制语言
[
*)
]
的出现,
使得人们更容易编程实现这些运算
"
文献[
*.
]给出
了
/
?
[
*6
]
设计过程中考虑的各个因素,并与其他几
种实时绘制语言(如
@A<A
[
*7
]
,
#A<A
[
*B
]
等)进行了
充分比较
"
图
*
目前
#$%
渲染管道示意图
本文对基于
#$%
的通用计算给出比较详尽的
综述;同时在一些相应的算法上提出了自己的改进
方法,并相应给出了算法的效率比较和分析;最后对
硬件今后的发展以及基于硬件的应用研究提出了自
己的一些想法
"
!
相关工作
基于
#$%
的通用计算是随着图形芯片的发
展而发展起来的,虽然以前的图形卡主要只是针
对图形本身的应用,如光照计算、深度检测、光栅化、
反走样等,但是针对其他更为通用的应用也有出现,
如利用颜色来标示物体序号
[
*!
]
等,但是真正全面
开展起来是因为可编程性的普及
"
随着
’((*
年
#012340)
的出现,顶点级可编程开始普及
[
*&
]
,即
C03D0E$32
?
38F
,虽然这个时候像素级上还只是固
定的几条指令
"
但这方面的应用已经开始全面展开
"
’((’
年,人们开始利用
G0EDH30<98I03
结合
+0
?
JKD03
/2FLJM03
来求解扩散方程
[
’(
]
,
’(()
年像素级可编
程性出现,很多人开始利用像素程序来求解一般代
数问题,甚至有限差分方程组求解(
$>NK
)
[
*(
,
’*O’’
]
和优化问题的求解
[
’)O’.
]
"
显然,随着时间的推移
#$%
在通用计算的应用也将越来越广泛
[
!
]
"
*&!!
年,
/290M
等
[
*!
]
在求解辐射度方程时利用
颜色来标示物体序号,利用深度缓冲来辅助计算物
体可见性
"A0M
?P
0Q
等
[
’6
]
利用图形硬件进行实时的
)(7
6
期 吴恩华等:基于图形处理器(
#$%
)的通用计算
剩余19页未读,继续阅读
资源评论
无侈之途
- 粉丝: 1
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功