【发布时间】:2020-03-08 17:36:28
【问题描述】:
我正在开发视觉系统并使用 Opencv 进行图像处理,我必须将整个系统呈现为 32 位 ActiveX 控件,以便集成到 IWS(Indosoft Web Studio)应用程序中,因为 IWS 是 32 位的。
我该怎么做,因为我需要一个支持 cuda 的 32 位 Opencv 构建,并且不再有 32 位 Cuda 工具包。 任何人都可以从Nvidia 澄清以下内容。
不支持在 x86_32 上使用 CUDA 工具包进行本机开发。 在 x86_32 上部署和执行 CUDA 应用程序仍然是 支持,但仅限用于 GeForce GPU。创建 32 位 CUDA应用,使用CUDA的交叉开发能力 x86_64 上的工具包。
支持在 x86_64 上开发和运行 x86 32 位应用程序 Windows 仅限用于: GeForce GPU CUDA 驱动程序 CUDA 运行时 (cudart) CUDA 数学库 (math.h) CUDA C++ 编译器 (nvcc) CUDA 开发工具
我明白这一点,但我找不到任何关于如何在 x86_64 上使用 CUDA 工具包的交叉开发功能的方向。
【问题讨论】:
-
换句话说,我如何构建一个支持 cuda 的 32 位 OpenCV。
-
这意味着您在 64 位操作系统的 Visual Studio 中打开一个项目,并选择 win32 而不是 x64 作为您的平台。但是,除了 CUDA 运行时库和 CUDA 驱动程序 API 库之外,没有其他库支持。这意味着 CUFFT、CUBLAS、NPP 和其他此类库仅在选择 x64 平台时提供使用。例如,如果 OpenCV 对 NPP 有任何依赖,那么您将不走运。而且我将无法编写有关如何使用 cuda 支持构建 32 位 OpenCV 的教程。您最好的选择可能是恢复到具有 32 位支持的旧 CUDA 工具包和环境
-
所以我不能使用交叉开发功能,或者即使我这样做了,它也仅限于 Geforce GPU,并且在 cuda 工具包 6.5 之后不推荐使用 32 位。
-
让我们看看回到 cuda 6.5 是否有帮助。
-
当您选择 win32 项目而不是 x64 项目时应自动设置。您可以通过检查 Visual Studio 在编译期间放在控制台窗口中的
nvcc编译命令行来确认。