CUDA,我需要一张新卡吗? 1.0,1.1,2.0,2.1的差异

时间:2012-03-03 11:10:12

标签: c++ opencv cuda nvidia

正在研究一些GPU CUDA样本并尝试从Nvidia的包中取出一些样本以及OpenCV中的一些演示。大多数Nvidia的样本运行,但OpenCV主要给我OpenCV错误:Gpu API调用(无效的设备符号)。

我有一张gts 8800卡,支持Nvidia列出的计算能力1.0。有什么区别,我的错误与此有关吗?如果我买一张新卡,我可以运行更多东西吗?

3 个答案:

答案 0 :(得分:1)

是的,如果您购买较新的卡,您应该可以使用更高级的功能。您可以使用DeviceQuery SDK示例来获取计算功能,或者您可以查找许多卡。不同计算能力的硬件设备之间的差异在“CUDA编程指南”和/或“CUDA最佳实践指南”的附录中列出,这两者都可以在获得驱动程序和工具包的位置获得... developer.nvidia.com,也许

我不知道这是否是您特定问题的原因;但一般而言,在许多情况下,较新的设备可以比旧设备做得更多。

答案 1 :(得分:1)

似乎OpenCV支持1.1及以上的CUDA功能。伤心,但是真的......

来自OpenCV Makefile:

set(CUDA_ARCH_BIN "1.1 1.2 1.3 2.0 2.1(2.0)" 
         CACHE STRING "Specify 'real' GPU architectures to build binaries for, 
         BIN(PTX) format is supported")

答案 2 :(得分:1)

我有一个8800 gtx,我不能使用版本1.0的CUDA功能。对于正确的CUDA检测使用:

if (GpuInvoke.HasCuda &&
    GpuInvoke.GetCudaEnabledDeviceCount() > 0 &&
    new GpuDevice(GpuInvoke.GetDevice()).CudaComputeCapability.Major > 1)
{  
   //enter code here
}