nvcc只能将GPU端代码编译成PTX代码或者二进制代码,而要对GPU资源进行整理,分配GPU上的显存并启动kernel函数,就是CUDA runtime API或者CUDA driver API的工作了,但需要注意的是在一个程序中不能混合使用CUDA运行时API和CUDA驱动API。他们可以实现许多应用程序接口,比如上下文管理、与OpenGL和Direct3D的互操作性、代码块管理、设备管理、存储器管理、执行控制、纹理索引管理[15]。CUDA driver API可以加载二进制或汇编形式的内核函数,编程复杂,但有时能通过直接操作硬件的执行实现一些复杂的功能,获得更高的性能。CUDA runtime API在CUDA driver API的基础上进行了封装,隐藏了一些实现细节,编程更加方便,它不需要专门的初始化函数,将在第一次调用时自动完成初始化。
2。3。2 CUDA硬件体系
CUDA的硬件体系包括GeForce、Quadro和Tesla三个系列[19]。大到高性能多GPU的系统,小到普通的家用笔记本,均对CUDA-enabled GPU的产品有需求。CUDA-enabled GPU具有并行数据高速缓冲(Parallel Data Cache) 的功能,以及也可以支持线程执行管理器(Parallel Data Cache),它强大的并行数据计算能力是因为每个GPU拥有8。128个Stream Processor。业余、家用市场一般青睐GeForce[19];Quadro主要被用作专业图形的制作;而GPU计算主要使用Tesla,因为它没有图形输出的功能,不能作为图形卡。所以,在准备开发CUDA应用之前,需要综合评估这三个产品不同的擅长方向与应用特色。Quadro和Tesla对高密度计算能力是首要的选择。来:自[优E尔L论W文W网www.youerw.com +QQ752018766-
2。4 论文实验平台
本文对高光谱遥感目标检测方法的研究在统一的实验平台下实验检测。计算机型号为Lenovo-THINKD30工作站,硬件配置为CPU是英特尔Xeon(至强)E5-2609二处理器八核,主频1。15GHz,32GB内存;GPU型号为NVIDIA Tesla C2075,包含448个CUDA核心和5。25GB可用显存,存储器带宽144GB/s,单精度浮点性能峰值1。03Tflops,双精度浮点性能峰值515Gflops。软件环境为操作系统64位Win7专业版, Visual Studio 2010开发工具以及CUDA5。5开发工具包。
2。5 本章小结
本章首先介绍了GPU的发展,描述了GPGPU到CUDA架构出现的巨大改变;接着对CUDA编程基础进行了详细的说明,重点阐述了CUDA的内核编程基础及重点内容,为下面章节的研究方法做好了事前的准备;然后,对CUDA的软硬件体系进行了细致的研究;最后,介绍了本论文的实验平台的配置。