2016-07-25 149 views
2

有誰知道爲什麼我無法使用CUDA,我安裝了啓用了CUDA的Nvidia顯卡,特別是GTX 660,並且我還安裝了CUDA驅動程序和工具包。但是,當我嘗試使用「HasCuda」函數時,它總是返回false。另外,當我嘗試編譯一個程序而未檢查CUDA時,我只是得到一個錯誤。所以,沒有人有任何關於如何在Visual Studio 2015中正確安裝Emgucv和CUDA的說明,順便說一下,我從nuget包中獲得了Emgucv。無法使用Emgucv CUDA

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using Emgu.CV.Cuda; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     public void CUDACheck() 
     { 
      if (CudaInvoke.HasCuda) 
      { 
       MessageBox.Show("CUDA On"); 
      } 
      else 
      { 
       MessageBox.Show("CUDA Off"); 
      } 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      CUDACheck(); 
     } 
    } 
} 

結果總是「Cuda Off」。

+0

你的代碼在哪裏? –

回答

1

我認爲問題在於您正在使用未啓用CUDA的Emgu構建版本。沒有啓用CUDA的版本更常用,因爲它是一個更小的包。我自己使用NuGet的包,這似乎沒有啓用CUDA。您必須確保您使用的是具有名稱的-cuda版本,您可能必須從SourceForge下載該版本:https://sourceforge.net/projects/emgucv。轉到文件,並找到你需要的文件。

+0

這似乎是問題,但我需要添加與cuda支持整個包。 –

0

從這裏下載可執行文件xxx_cuda_xxxEmgucv sourceforge executables。從nuGet包管理器中刪除您安裝的那個。將引用添加到您下載和安裝的包bin文件夾中。將concrt140.dllcvextern.dll,msvcp140.dll,opencv_ffmepg330_64.dllvcruntime140.dll手動複製到您的調試或發佈文件夾中。那麼它應該讓你使用cuda,更多的版本兼容信息請參考:Emgucv Version History。您從nuGet軟件包管理器下載的版本無法正常工作的原因僅僅是因爲該版本不支持GPU計算。