Использование ядра CUDA: большой объем памяти процессаC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Использование ядра CUDA: большой объем памяти процесса

Сообщение Anonymous »

Всего у меня 811 изображений с разрешением RGB каждого 1440x1080. Следовательно итого 3,52 ГБ. Я использую CUDA v12.2, графический процессор NVIDIA RTX 3090 и Visual Studio 2019. Я столкнулся с двумя проблемами
  • После readImage() , память процесса показывает 12,5 ГБ. Почему изображения размером 3,52 ГБ занимают так много памяти? Как его уменьшить?

    Код: Выделить всё

    //it is a global container
    std::vector gpuImgStack;
    
    void readImage(std::string img_path)
    {
    cv::Mat original_img;
    cv::cuda::GpuMat gpuTempImg;
    
    for (int i = 0; i < IMG_SIZE; i++)
    {
    original_img = cv::imread(img_path + "a1_" + std::to_string(i + 1) + ".BMP");
    gpuTempImg.upload(original_img);
    
    gpuImgStack.push_back(gpuTempImg);
    
    gpuTempImg.release();
    original_img.release();
    
    if (gpuImgStack.back().empty())
    {
    printf("Image read failed\n");
    exit(-1);
    }
    }
    
    std::cout = imgWidth - 3)
    return;
    
    double sumX = 0.0, sumY = 0.0, color=0.0;
    for (int i = -1; i  (gpuImgStack[i].ptr(), ML3[i].ptr(), width, height);
    }
    cudaDeviceSynchronize();
    }
    
    Я пытался оптимизировать ядро, и сейчас это мое ядро.
    Кроме того, я пытался не использовать эти два контейнера, но это невозможно сделать так, как внутри ядра исходное и конечное изображения будут неправильными.

    Код: Выделить всё

    cv::cuda::GpuMat ML3[IMG_SIZE];
    cv::cuda::GpuMat SML3[IMG_SIZE];
    


Подробнее здесь: https://stackoverflow.com/questions/787 ... ess-memory
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»