【发布时间】:2012-03-11 10:19:11
【问题描述】:
有没有办法强制 OpenCL 将数据保存在芯片上的全局内存缓冲区中(即它永远不会被换出到系统内存)?基本上我想为自己的需要保留一部分 GPU 内存,并且我希望我放在那里的数据保留在 GPU 上,而不管其他应用程序是否开始使 GPU 的内存饱和。
谢谢!
【问题讨论】:
标签: opencl
有没有办法强制 OpenCL 将数据保存在芯片上的全局内存缓冲区中(即它永远不会被换出到系统内存)?基本上我想为自己的需要保留一部分 GPU 内存,并且我希望我放在那里的数据保留在 GPU 上,而不管其他应用程序是否开始使 GPU 的内存饱和。
谢谢!
【问题讨论】:
标签: opencl
GPU 没有链接到 CPU 内存管理单元,它们不会像 CPU 那样执行页面错误。它们是由设备驱动程序控制的块设备外设。
对于 OpenCL,当您通过创建 cl_mem 对象并将其排队(写入)到 GPU 来在 GPU 上分配内存时,它将一直存在,直到您使用 clReleaseMemobject 显式释放它。要重用缓冲区,您需要不释放它并跟踪其 Cl_mem 对象。
【讨论】: