gpt4 book ai didi

c++ - opencv 仍然使用 cuda 内存

转载 作者:行者123 更新时间:2023-11-28 01:39:16 28 4
gpt4 key购买 nike

我想知道使用 CUDA 我的代码能快多少,所以我使用以下开关(包括 cuda)编译 OpenCV

cmake CMAKE_BUILD_TYPE=RELEASE   \
CMAKE_INSTALL_PREFIX=/usr/local \
WITH_CUDA=ON \
ENABLE_FAST_MATH=1 \
CUDA_FAST_MATH=1 \
WITH_CUBLAS=1 \
INSTALL_PYTHON_EXAMPLES=OFF \
OPENCV_EXTRA_MODULES_PATH=/home/saeed/opencv_contrib/modules \
BUILD_EXAMPLES=OFF ..

我在基于 Linux 的机器上工作,我的系统上有专用的 GPU,所以我如何测量 opencv 代码的 gpu 使用情况?我用

做到了
$  nvidia-smi

命令,它给我有关 gpu 使用等的一般信息(在 bash 中)。

为了跟踪我使用的这个输出

$ watch -n 0.1 nvidia-smi

命令,每0.1秒更新一次信息(最少0.1秒)

所以我在 opencv 中有如下代码(你可以看到我没有在其中使用任何 cuda 函数)

#include "opencv2/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
using namespace cv;
int main()
{
cv::Mat src(1500,1500,CV_8UC3),res;
for (int var = 0; var < 70; ++var)
{
Canny(src,res,50,150,5);
}

}

所以当我运行上面的代码时,我在我的 nvidia-smi 页面中截屏(以了解正在使用多少 gpu ram)

enter image description here

如您所见,有 23 MiB 正在使用中!!!那么为什么会发生这种情况!如果这是正常的,我们怎么能阻止它!? 如何针对这个问题停止GPU

最佳答案

您可以使用以下 environment variable 使 CUDA 运行时指示没有可用的 GPU :

CUDA_VISIBLE_DEVICES="" ./my_opencv_code_that_wont_use_gpu

如果你想让 OpenCV 实际上不对 GPU 做任何事情,我最好的猜测是在没有 CUDA 支持的情况下编译它:

cmake CMAKE_BUILD_TYPE=RELEASE   \
CMAKE_INSTALL_PREFIX=/usr/local \
WITH_CUDA=ON \ ********MODIFY
ENABLE_FAST_MATH=1 \
CUDA_FAST_MATH=1 \ ********MODIFY
WITH_CUBLAS=1 \ ********MODIFY
INSTALL_PYTHON_EXAMPLES=OFF \
OPENCV_EXTRA_MODULES_PATH=/home/saeed/opencv_contrib/modules \
BUILD_EXAMPLES=OFF ..

关于c++ - opencv 仍然使用 cuda 内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48007627/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com