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/