gpt4 book ai didi

opencl - OpenCL 中 CL_MEM_USE_HOST_PTR 和 CL_MEM_COPY_HOST_PTR 的基准测试

转载 作者:行者123 更新时间:2023-12-01 08:16:36 26 4
gpt4 key购买 nike

我在主机上有一个向量,我想将它减半并发送到设备。做一个基准测试表明 CL_MEM_ALLOC_HOST_PTRCL_MEM_USE_HOST_PTR 快并且比 CL_MEM_COPY_HOST_PTR 快得多.此外,设备上的内存分析未显示设备上创建的缓冲区大小有任何差异。这与 Khronos- clCreateBuffer 上提到的标志的文档不同。 .有谁知道发生了什么?

最佳答案

Pompei 2 的答案是不正确的。该规范不保证内存的分配位置,而只保证如何分配。 CL_MEM_ALLOC_HOST_PTR 使 clCreateBuffer 为您分配主机端内存。然后,您可以使用 clEnqueueMapBuffer 将其映射到主机指针。 CL_MEM_USE_HOST_PTR 将导致运行时将您提供的数据舀入 OpenCL 缓冲区。

固定内存是通过使用 CL_MEM_ALLOC_HOST_PTR 实现的:运行时能够尽可能分配内存。

所有这些性能都取决于实现。仔细阅读第 3.1.1 节会发现,在其中一个调用(没有 CL_MEM 标志)中,NVIDIA 能够预分配设备端缓冲区,而其他调用仅将固定数据映射到主机指针,准备写入设备.

关于opencl - OpenCL 中 CL_MEM_USE_HOST_PTR 和 CL_MEM_COPY_HOST_PTR 的基准测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9565253/

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