opencl - OpenCL1.1 上的惰性策略

标签 opencl

OpenCL1.1中有没有惰性策略来处理数据传输?我知道 CUDA 有这种策略,因此您可以分配比设备上更多的内存。

最佳答案

我对 OpenCL 不太熟悉,但找到了一个相关的 NVIDIA forum discussion .

还以为我会在提到 CUDA 时回复,以防以后有人遇到...

我认为 native CUDA 没有办法分配比设备上实际可用的内存更多的内存。事实上,即使在较大的卡上,您也无法分配一个大的连续数组,因为卡具有独立的内存条,例如回到 C1060 时代,我记得在 3gb 卡上达到了 1.5gb 左右的限制。您能否详细说明 CUDA 允许如此大的分配是什么意思?

如果您使用 ArrayFire (或 Jacket ),他们的基本思想是 virtual memory :如果您有很多小分配,总计超过卡上的可用分配,那么它只会将最重要的部分保留在设备上,而其他部分将保留在主机上,直到需要时为止。

关于opencl - OpenCL1.1 上的惰性策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9580065/

相关文章:

python - 如何在 pyopencl 中明确设置工作维度?

c++ - 如何在 OpenCL 内核中包含 C++ 类

python - 与 PyOpenCL 的结构对齐

OpenCL - 多 GPU 缓冲区同步

objective-c - OpenCL 到 OpenGL 纹理问题

opencl - 如何在 opencl 中创建离线编译并创建其二进制文件?

compiler-errors - OpenCL编译器对Windows 10用户配置文件敏感吗?

c++ - clCloneKernel导致段错误

OpenCL 和 Tesla M1060

c++ - OpenCL/OpenGL 互操作性纹理段错误