Opencl 我可以分配比CL_DEVICE_MAX_MEM_alloc_SIZE大的内存吗?

Opencl 我可以分配比CL_DEVICE_MAX_MEM_alloc_SIZE大的内存吗?,opencl,Opencl,我可以分配比CL_DEVICE_MAX_MEM_alloc_SIZE更大的内存吗 我使用的是NVIDIA GeForce GTX 960(带有NVIDIA驱动程序352.39+CUDA 7.5) GTX960具有2GB内存,因此CL_设备的最大内存分配大小=512MB(默认为完整内存的1/4) 但是我的内核需要超过512MB的内存 是否有一些解决方案可以分配比CL_DEVICE_MAX_MEM_ALLOC_SIZE大的内存?您可以分配比CL_DEVICE_MAX_MEM_ALLOC_SIZE大的

我可以分配比CL_DEVICE_MAX_MEM_alloc_SIZE更大的内存吗

我使用的是NVIDIA GeForce GTX 960(带有NVIDIA驱动程序352.39+CUDA 7.5)

GTX960具有2GB内存,因此CL_设备的最大内存分配大小=512MB(默认为完整内存的1/4)

但是我的内核需要超过512MB的内存


是否有一些解决方案可以分配比CL_DEVICE_MAX_MEM_ALLOC_SIZE大的内存?

您可以分配比CL_DEVICE_MAX_MEM_ALLOC_SIZE大的内存区域,但请注意,这应该很慢


另外,请阅读此文章了解更多信息

谢谢您的回复。但我找不到如何从您的链接(和链接的链接)分配更大的内存。你能告诉我该怎么办吗?我认为这不准确。分配不可能超过最大值,如果可以,这是实现中的一个缺陷。当然,您总是可以分配多个最大大小的缓冲区。只需继续分配多个内存区域,正如@DarkZeros所说的。但是,是的,这不是最准确的答案,也不是最近的,我两年前做过OpenCL,现在我只使用DirectCompute(CS_5_0)来处理所有需要计算的东西GPU@DarkZeros嗯,更准确地说,你不能保证能够分配超过MAX_MEM_ALLOC_的大小。Khronos文档说,如果超过该值,实现可能会返回错误。我个人发现,英特尔的驱动程序在试图超过该数量时失败,而英伟达的设置不在我的(所有的工作都很顺利,我可以成功地使用NVIDIA卡上的整个缓冲区)。