固定内存OpenCL,有人成功使用过吗?
我在 clCreateBuffer
调用中使用了 CL_MEM_ALLOC_HOST_PTR
标志,但计算探查器将我的所有“主机内存传输类型”显示为可分页。我在两种不同的内核设置中尝试过它,但分析器不会显示我正在使用固定内存。
当内核开始使用固定内存时,它真的是随机的吗?是不是受到什么东西的制约?我猜缓冲区的大小很重要。我尝试了一个大小为 10,000 个浮点的缓冲区,但仍然获得可分页内存。让我知道你们的想法。
I used the CL_MEM_ALLOC_HOST_PTR
flag with my clCreateBuffer
calls, but the Compute Profiler shows all my "host mem transfer type" as being Pageable. I tried it in two different kernel setups, but the profiler wouldn't show that I was using pinned memory.
Is it just really random when a kernel gets to use pinned memory? Is it constrained by something? I am guessing the size of the buffer matters. I tried one buffer of a size of 10,000 floats and I still got Pageable memory. Let me know what you all think.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您查看 OpenCL 编程指南 (3.1),第 3.3.1 节中提到 OpenCL 现在可以控制是否分配固定内存对象。您只能尝试使用 CL_MEM_ALLOC_HOST_PTR 创建它们。
If you check the OpenCL programming guide (3.1) it is mentioned in section 3.3.1 that OpenCL has now control over memory objects are allocated pinned or not. You can only TRY to create them using CL_MEM_ALLOC_HOST_PTR.