CUDA技术在GPU通用计算中的应用

2016-05-28 10:40王华龙
科技与创新 2016年10期
关键词:存储器

王华龙

摘 要:CUDA技术是由NVIDIA推出的通用并行计算架构,其中的GPU能够解决复杂的计算问题。该架构主要包含CUDA指令集架构(ISA)和GPU内部的并行计算引擎,所编写的程序可以在支持CUDA的处理器上运行。

关键词:CUDA技术;GPU处理器;并行计算引擎;存储器

中图分类号:TP391.9 文献标识码:A DOI:10.15913/j.cnki.kjycx.2016.10.159

1 实现CUDA技术的GPU结构

1.1 支持CUDA技术的GPU计算单元结构

支持CUDA技术的GPU处理器的强大运算能力来自芯片的SM(Streaming Multiprocessor),而Fermi处理器将每个SM包含的线程处理器增加到32个,线程处理器首次增加一级缓存结构和二级缓存,它可以供所有的SM处理器使用。为了满足通用计算的要求,拥有最新CUDA技术的Fermi处理器首次引入真正的缓存,每组SM拥有64 KB可配置内存(64 KB×16=1 024 KB,共1 MB),具体可分为16 KB共享内存和48 KB一级缓存,或者48 KB共享内存和16 KB一级缓存。它可以灵活配置,以满足不同任务的要求。Fermin处理器首次引入768 KB的共享二级缓存供16个SM共享使用。

1.2 CUDA的存储器结构

CUDA组织架构主要包括纹理存储器(Texture Memory)、本地存储器(Local Memory)、全局存储器(Global Memory)、常数存储器(Consant Memory)、寄存器(Register)和共享存储器(Shared Memory)。

寄存器(Register)是GPU处理器芯片上的高速缓存,执行单元从寄存器里存取数据和指令有着最低的存取延时和最快的执行速度。

在CUDA架构中,寄存器的基本单元是寄存器文件(Register File),每个寄存器文件为4字节宽度。寄存器对提高程序的执行效率有非常重要的作用。

在执行程序时,局部存储器(Local Memory)只能被CUDA核心的执行单元存取,而不能被同一个SM流处理器的其他CUDA核心使用,属于CUDA核心专用存储器。当每个CUDA核心的寄存器被相关程序使用完后,便使用局部存储器存放程序的数据和指令。相对于寄存器来说,局部存储器的存取延时增加了。

共享存储器(Shared Memory)也是GPU内的高速存储器。它可以被同一个Block中的多个线程共同访问,并存取数据。这对实现稍微复杂的并行算法非常有用。在第一代和第二代CUDA架构的GPU芯片中,每个SM流处理器的共享存储器为16 Kbyte,被组织成16块。在新一代Fermi架构中,GPU芯片的共享存储器与以往的GPU有很大的不同,不仅容量上有变化,配置也更加灵活,可以根据任务的需要配置为48 Kbyte或16 Kbyte。

全局存储器(Global Memory)是位于PCB电路板上的显示存储器,不论是CPU还是GPU,都可以方便地存取、访问。整个GPU上每个SM流处理器中的线程都能访问全局存储器。全局存储器是由多个显存芯片组成的,它可以根据任务需要灵活搭配——增加容量或增加系统带宽。由于全局存储器与GPU并非集成在一起,所以,当GPU中的线程要从全局存储器中读取数据和存放结果时,要耗费较长的时间,有较大的存取时延,而且它没有缓存机制。

常数存储器(Constant Memory)与全局存储器一样都位于显存芯片中,但是,与全局存储器不同的是,常数存储器拥有缓存,可以加速该区域存储器的访问,而且每个SM流处理器拥有8 KB的常数存储器,它是只读的。

2 NVCC编译器

NVCC编译器是一种混合编译环境。该编译器主要用于分析目标程序中的代码,将源程序代码分为两类,一类代码由CPU执行,另一类适合并行计算的代码由GPU执行。这样做,可以让CPU完成复杂的控制和管理任务,由GPU完成高度并行的计算任务。

3 CUDA

CUDA可以提供CUFFT、CUBLAS和CUDPP 3个功能强大的函数库,像C语言的常用库函数一样,提供高效的常用函数。CUFFT是一个利用GPU进行傅里叶变换的函数库;CUBLAS是一个基本的矩阵与向量运算库,它可以提供与BLAS库相似的接口,并用于矩阵运算;CUDPP可以提供很多基本的常用并行操作函数,以作为基本组件快速搭建并行数据处理平台。

参考文献

[1]赵勇.认知无线电的发展与应用[J].电视技术,2009,49(6):93-101.

[2]王晓琴,黑勇.软件无线电硬件体系结构研究[J].科技技术与工程,2006,6(13):1820-1824.

[3]张丽.虚拟无线电接收机的实现计算法研究[D].西安:西安电子科技大学,2007.

[4]卢光军,陆佩中.一种基于集群计算的软件无线电接收系统实现[J].微电子学与计算机,2008,25(10):80-86.

[5]李苗.虚拟无线电接收平台开发和关键技术研究[D].西安:西安电子科技大学,2006.

〔编辑:白洁〕

猜你喜欢
存储器
Flash存储器W25Q16JVSNIQ替换M25P16的可行性研究
本土部分存储器及存储控制器厂商的发展策略
基于通用存储器的低成本加密应用方案
独立拼装手机
基于S3C2440的存储器接口设计与初始化分析
计算机组成原理课程建设研究
存储器——安格尔(墨西哥)▲
比喻法在“微机原理与接口”课程教学中的应用
基于单片机的外部扩展电路控制
Buffalo推出四硬盘网络存储器 主打Soho一族