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内存。
FPGA编程
1) Verilog和VHDL语言。
2)