通用GPU编程入门
1. GPU概述
在当今的硬件平台中,多核GPU(图形处理单元)几乎无处不在,从标准桌面电脑到计算机集群都有它们的身影。最初,GPU是为图形应用程序而设计的,但如今,它们在科学计算和科学模拟等领域的重要性日益增加。特别是对于数据并行程序,使用GPU可以显著提高效率。这主要得益于GPU的特定硬件设计,它针对图形应用的大量数据和大量线程执行的浮点运算的高吞吐量进行了优化。如今,一个GPU可能包含数百个核心来执行这些线程。
2. GPU编程环境
早期,由于编程环境(如DirectX或OpenGL)是为图形应用程序设计的,使用GPU进行通用非图形应用程序和模拟的难度非常高。近年来,出现了一些新的GPU编程环境,如CUDA和OpenCL。
- CUDA(Compute Unified Device Architecture) :自2007年以来,NVIDIA的新一代GPU支持这种更通用的并行编程环境,并且也可以在CPU上进行模拟。
- OpenCL(Open Computing Language) :由苹果、英特尔、AMD/ATI和NVIDIA等行业合作伙伴联合开发,是一种针对GPU的标准化编程模型。
3. GPU架构
3.1 架构发展
GPU从图形加速器发展而来,其架构与通用CPU的架构发展相对独立。由于图形应用程序具有很高的数据并行性潜力,GPU架构比CPU架构更早地采用了多个专用处理器核心。如今,单个GPU可以包含数百个计算核心,远多于当前CPU技术中使用的核心数量。
超级会员免费看
订阅专栏 解锁全文
100

被折叠的 条评论
为什么被折叠?



