OpenCL强制缓冲区留在GPU上

时间:2012-03-10 12:07:04

标签: opencl

有没有办法强制OpenCL将数据保存在芯片上的全局内存缓冲区中(即它永远不会被换成系统内存)?基本上我想根据自己的需要保留GPU的一部分内存,我希望我放在那里的数据保留在GPU上,无论其他应用程序是否开始使GPU的内存饱和。

谢谢!

1 个答案:

答案 0 :(得分:4)

GPU没有链接到CPU内存管理单元,它们不会像CPU一样发生页面错误。它们是由设备驱动程序控制的块设备外围设备。

对于OpenCL,当您通过创建cl_mem对象并将其排队(写入)到GPU上而在GPU上分配内存时,它会一直存在,直到您使用clReleaseMemobject显式释放它为止。要重用缓冲区,您需要不释放缓冲区并跟踪其Cl_mem对象。

相关问题