gpt4 book ai didi

opencl - CL_MEM_USE_HOST_PTR Vs CL_MEM_COPY_HOST_PTR Vs CL_MEM_ALLOC_HOST_PTR

转载 作者:行者123 更新时间:2023-12-04 01:30:34 25 4
gpt4 key购买 nike

在《 OpenCl By Action》一书中,我读到了以下内容:

CL_MEM_USE_HOST_PTR:内存对象将访问主机指定的内存区域
指针。

CL_MEM_COPY_HOST_PTR:内存对象将设置主机指针指定的内存区域。

CL_MEM_ALLOC_HOST_PTR:将分配主机可访问内存中的区域以用于数据传输。

我对这三个标志完全感到困惑。

我想至少知道前两个有何不同。

1-在CL_MEM_USE_HOST_PTR中,内存对象将访问内存区域,而在CL_MEM_COPY_HOST_PTR中,内存对象将设置内存区域(在两种情况下均由主机指定)。此设置和访问方式有何不同?
然后第三个人又让我很困惑。

2-是否所有这些固定的内存分配?

最佳答案

CL_MEM_COPY_HOST_PTR在创建缓冲区时仅复制值。

CL_MEM_USE_HOST_PTR维护对该存储区的引用,并且根据实现的不同,它可能在内核执行时直接访问该存储区,或者可能对其进行缓存。如果要使用此功能编写跨平台代码,则必须使用mapbuffer提供同步点。

CL_MEM_ALLOC_HOST_PTR是唯一经常固定的内存。例如,在AMD上,这会分配一个固定的内存区域。通常,如果您使用CL_MEM_USE_HOST_PTR,它将在内部简单地固定到固定的内存区域并使用它。通过使用ALLOC_HOST_PTR,您可以避免这种情况。但这又取决于实现方式,您必须阅读制造商文档,以了解是否会为您提供固定的内存。

关于opencl - CL_MEM_USE_HOST_PTR Vs CL_MEM_COPY_HOST_PTR Vs CL_MEM_ALLOC_HOST_PTR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25496656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com