如何在共享(非专用)GPU内存中分配GpuMat?

时间:2019-05-02 21:46:20

标签: opencv memory cuda allocation

使用标准的OpenCV GpuMat构造函数,GPU内存分配在“专用”区域(与“共享”区域相反),该区域很快就会被过度填充。
如果可以的话,如何在“共享”内存中分配GpuMat?

我正在按照以下说明在此特定计算机上使用由OpenCV 4.1和我自己构建的CUDA 10.1:https://docs.opencv.org/master/d3/d52/tutorial_windows_install.html
(唯一的显着区别是我需要将变量值DWITH_CUDA从OFF更改为ON以启用CUDA支持。)

我需要同时在GPU内存中堆叠200张高清图像。
我的视频卡有2GB的专用内存和8GB的共享内存。

如果转到GpuMat类的定义,则可以看到最后一个参数是“分配器”:

GpuMat(int rows, int cols, int type, GpuMat::Allocator* allocator = GpuMat::defaultAllocator());

此参数的默认值为defaultAllocator()函数的返回值。我想提供Allocator的自定义版本可以解决此问题。但是我没有找到有关如何修改它的任何合理信息。

0 个答案:

没有答案