【发布时间】:2017-02-02 20:14:42
【问题描述】:
我有一段代码在其中使用clCreateBuffer 和CL_MEM_ALLOC_HOST_PTR 标志,我意识到这会从设备分配内存。这是正确的,我在标准中遗漏了一些东西吗?
CL_MEM_ALLOC_HOST_PTR:此标志指定应用程序希望 OpenCL 实现从主机可访问内存中分配内存。
就我个人而言,我理解该缓冲区应该是主机端缓冲区,稍后可以使用clEnqueueMapBuffer 进行映射。
关注我正在使用的设备的一些信息:
Device: Tesla K40c
Hardware version: OpenCL 1.2 CUDA
Software version: 352.63
OpenCL C version: OpenCL C 1.2
【问题讨论】:
-
应该是提示,而不是请求。您的设备选择它认为使用内存的最佳方式。
-
“从主机可访问内存分配内存”的意思是:“在可访问的内存区域(在主机或设备端)分配缓冲区 - 就像使用 clEnqueueMapBuffer - 来自主机”?