OpenCL编程模型:
数据并行模型。将数据进行划分。
任务并行。
OpenCL平台模型:
host包含多个CD(计算设备),每个CD包含多个CU(计算单元),每个CU包含多个PE(处理元素)。
对应到CUDA架构:CD就是GPU,CU是streaming多处理器,PE是streaming处理器。
OpenCL程序:
host代码,C/C++,运行在host上。
device代码,OpenCL C,运行在device上。
host代码发送命令给device:传送数据(hostmemory <--- > device memory),执行device代码。
OpenCL的执行模型:
kernel是一个函数,它代表一个work item,是计算的基本单元。它有一个PE来执行。
多个kernel构成一个work gropu,由一个CU来执行。
kernel有私有内存。
workgroup有共享的局部内存。
一个CD有全局内存。
CPU有host内存。

本文介绍了GPU异构编程模型,包括OpenCL的数据并行和任务并行模型,OpenCL平台的CD、CU、PE架构,以及OpenCL程序的host和device代码执行流程。同时提到了FPGA编程,如Verilog和VHDL语言,以及Xilinx和Altera的C/OpenCL到FPGA转换工具。最后,文章对比了OpenCL和OpenACC在GPU加速编程上的应用,OpenACC通过在C/C++代码中添加制导语句实现加速。
最低0.47元/天 解锁文章
8200

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



