前言
最近看了一些关于CUDA方面的资料,并粗略地浏览了两本关于CUDA和GPGPU的书(《GPGPU编程技术:从GLSL、CUDA到OpenCL》和《CUDA并行程序设计:GPU编程指南》),对于CUDA目前本人也是处于正在入门的阶段。在此汇编CUDA的学习资料,方便以后的学习。
关于GPGPU
所谓GPGPU,就是把强大的图形处理器应用于日益复杂的计算工作。究其本质,图形处理单元(Graphices Processor Unit, GPU)是为高速图形处理而设计的,它具有天然的并行性,程序并行运行自然要比串行快很多。
早期的GPGPU编程比较痛苦,经典的GPGPU需要使用通用的图形API,比如OpenGL,而图形API并不是为了通用程序而设计的,所以需要使用大量的技巧,让通用计算的数据“看起来像幅图”。除了难以掌握外,更重要的是不能根据硬件特性获取硬件应有的性能,于是就产生了CUDA。
关于CUDA
CUDA全名计算统一设备架构(Compute Unified Device Architecture, CUDA),东家是英伟达(NVIDIA)。CUDA是专门为通用计算而设计的(Tesla卡甚至连图形输出都没有,专为计算而设计),CUDA采用一种简单的数据并行模型,再结合编程模型,从而