通过上图可知,在OpenCL中提供的存储模型中,有如下几种Memory类型
Host Memory
Host Memory
指的是连接在主板上的内存条,仅供host进行数据读取。
Off-Chip Global memory
Off-Chip Global memory
指的是在FPGA板卡上通过硬件与FPGA
芯片连接的内存条。数据存取所花费的时间相对较长,但是容量相对较大。
Off-Chip Global Memory
Off-Chip Global Memory
Host
端可以通过PCIe
进行数据读写,Device
端同样可以进行数据的读写
Off-Chip Constant Global Memory
Constant Global Memory
同样是在FPGA板卡上通过硬件与FPGA
芯片连接的内存条。不同的是Host
端只能进行写入,Device
端只能进行读出。适用于参数数据的传输。
On-Chip Memory
On-Chip Memory
主要是采用FPGA
中BRAM
资源组成,具有随机存储和低延时的特点,但是资源有限。
On-Chip Global Memory
On-Chip Pipes
Local Memory & Private Memory
Local Memory
可用于所有的work-item
Private Memory
仅用于single work-item
参考
OpenCL Memory Architecture SDAccel Environment Optimization Guide (UG1207)