Opencv acceleration with CUDA in C++
我是 HPC 学生,我使用 OpenCV 函数和 C 进行项目编码。我必须并行代码以获得高性能,所以我决定使用 CUDA 加速。我对以下内容感到困惑a€|
为了获得高性能,仅使用 CUDA 就足够了吗?
我可以将 OpenCV::GPU 或 OpenCV::CUDA 与 Cuda GPU 一起使用吗?
OpenCV::GPU 和 OpenCV::CUDA 有什么不同?
只有拥有 NVIDIA 卡才能使用 CUDA 编程。仅当您进行并行处理时,才会使用通用 GPU 硬件的功能。
例如,如果您正在处理图像,则图像的每个像素都有单独的操作。然后 GPU 编程有助于节省您的计算时间。
在您的应用程序中,第二个像素输入取决于第一个像素输入。然后它更好地在 CPU 本身中运行您的应用程序。同样,从 CPU 到 GPU 和 GPU 到 CPU 的数据传输也会影响性能。编码时需要小心。
2
- 非常感谢您的回答,实际上我正在研究图像本地化并且我有一张Nvidia卡,所以我只想知道是否可以在我的应用程序中同时使用 cuda 和 opencv::cuda。
-
是的。那应该不是问题。
-
我还有一个问题,请。对于我的项目,我需要使用 MinGW 编译 CPU 代码,并在将每个薄链接在一起之后使用 MSVC 编译器打开::cuda,所以你知道如何在 cmakelists.txt 上做到这一点吗?
-
CUDA 代码将由 nvcc 编译器编译。以下是您在 CMakeList 中可能需要的一些代码。 if (CMAKE_COMPILER_IS_GNUCXX) \\\\tset(CMAKE_CXX_FLAGS "-O3 -Wall") \\\\tset(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -std=c 11") endif() set(CUDA_HOST_COMPILER "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/cl.exe") 使用两个编译器编译单个应用程序(mingw