- 6
- 0
- 约5.03千字
- 约 10页
- 2018-06-23 发布于福建
- 举报
面向OpenCL模型DCT并行化
面向OpenCL模型DCT并行化
摘要:为了提高DCT变换的速度,文中对面向OpenCL模型的DCT并行化过程进行了研究,首先分析了GPU和OpenCL的特性和优势,研究了传统DCT变换的工作原理,然后针对CPU和GPU两种不同平台对DCT变换进行测试和结果分析,实验结果表明基于OpenCL模型的并行化能够有效地提高DCT变换的速度。
关键词:GPU处理器;OpenCL模型;离散余弦变化;并行化
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)26-6007-05
随着操作系统和应用程序对复杂且高质量的图形要求越来越高,GPU将CPU从视频处理应用繁重的图形任务中解脱出来。1999年,世界上第一个GPU(GeForce 256)是由NVIDIA于推向市场[1]。GPU全称Graphic Processing Unit,即“图形处理器”[2],是显卡的“心脏”。现在的GPU已经从由若干专用的固定功能单元组成的专用并行处理器,发展成以GPU内部的通用计算资源为主,固定功能单元为辅的架构,这一架构的出现奠定了GPU计算的发展基础。GPU的处理器数目远多于CPU,其数量决定了其运算能力。
GPU已经不再局限于3D图形处理了,由最早以游戏为主要代表的图形应用,到现在大规模并行超级计算机和处理大批量并行浮点运算,尤其在动画渲染、气象研究、能源勘探、生物医疗、金融分析、地理信息系统等各个领域发挥着重要作用。“天河一号A”超级计算机是GPU应用的典型代表,它采用了GPU和CPU混合架构,并使用了超过14000颗CPU,其中配备了2048颗我国自主研发的飞腾FT-1000八核心处理器,Tesla M2050 GPU7168颗,总运算能力2.5PFLOPS,曾在2010年11月获得全球速度最快超级计算机的头衔。它的成功已经充分证明了GPU在数据计算方面的重要性。
为了提高DCT变换的速度以及扩展更多的应用,文中主要分析面向OpenCL模型的DCT变换的并行化。通过结合OpenCL语言和GPU的并行特性,充分发掘其中可以并行计算的部分,针对基于GPU的DCT变换的性能进行优化。
1 OpenCL
随着GPU可编程性不断增强,各种编程工具的不断推出,例如Nvidia的CUDA、AMD的Brook+、Apple的OpenCL、IBM的CBE、Intel的Larrabee,这些工具使GPU通用计算编程的复杂性大幅度降低,已逐步成为一种新型可编程高性能并行计算资源。对于编???人员来说他可以选择不同的语言或者API进行编程,文中选用OpenCL编程。
1.1 OpenCL的组成
OpenCL最早是由Apple公司提出,在Intel、AMD、NVIDIA等巨头的参与下,2008年12月已形成第一版标准。OpenCL全称Open Computing Language[3,4],即“开放计算语言”,为编写跨平台的GPU计算的程序提供了方便。
OpenCL的组成包含三个部分,如下:
1) OpenCL编程语言。又被称为OpenCL C编程语言。它是基于ISO C99标准的一个扩展子集,主要用来编写Kernel程序的语言,能运行在任何类型的微处理器上。
2) OpenCL平台API。它定义了协同执行的单个处理器程序找到OpenCL设备所用的函数和函数的功能,以及OpenCL应用创建上下文的函数。
3) OpenCL运行时API。它用于管理上下文进行命令队列的创建和运行时发生的其他操作。
图形里面也有很多API,比如OpenGL、DirectX是针对图形的,OpenCL是针对并行计算的API。这些构成便于主机程序启动Kernel程序,并为并行计算提供了一个有效的开发平台。OpenCL作为业界公认的第一个异构计算开发语言标准,正逐渐被各主要计算平台所采用。文中采用的异构处理平台为多核CPU和GPU。
1.2 OpenCL平台模型
OpenCL平台模型为开发人员提供了在计算设备上执行的OpenCL C函数。主机(Host)是OpenCL平台模型中的核心设备,它能够连接一个或多个OpenCL计算设备(Compute Device)。其中每个OpenCL计算设备又由一个或多个计算单元(Compute Unit)组成,每个计算单元由一个或多个处理单元(Processing Element) 组成,各种计算操作都是在处理单元中完成的。例如AMD Radeon HD 7970包含有32组CU,每组CU包含64个PE。Host端是 OpenCL程序的入口和出口,控制着计算设备中处理单元需要进行的计算,从而实现管理平台模型中所有计算资源。计算命令通过应
原创力文档

文档评论(0)