【问题标题】:KMLib Crashing in GTX 770 GPUGTX 770 GPU 中的 KMLib 崩溃
【发布时间】:2014-09-10 01:48:58
【问题描述】:

我在互联网上找到了 KMLib,我觉得它非常有趣。但是在运行示例应用程序时会出现错误:“GASS.CUDA.CUDAException”“Error Invalid Source”。

方法发生异常:

protected void InitCudaModule () 
     {
         deviceNr int = 0; 
         cuda = new CUDA (deviceNr, true); 
         cuCtx = cuda.CreateContext (deviceNr, CUCtxFlags.MapHost); 
         / / cuda.SetCurrentContext (cuCtx); 

         / / var ctx = cuda.PopCurrentContext (); 
         / / var CTX2 cuda.PopCurrentContext = (); 
         / / var ctx3 cuda.PopCurrentContext = (); 

         modluePath String = Path.Combine (Environment.CurrentDirectory, cudaModuleName); 
         if (! File.Exists (modluePath)) 
             throw new ArgumentException ("Failed to access cuda module" + modluePath); 

         cuModule = cuda.LoadModule (modluePath); / / ERROR! 

         cuFunc = cuda.GetModuleFunction (cudaProductKernelName); 
     } 

我正在使用 GTX770、Visual Studio 2010 Ultimate、Cuda SDK 5.5 和 Windows 7 64 位。

什么可能导致错误?

【问题讨论】:

    标签: machine-learning gpu svm cuda.net


    【解决方案1】:

    我不得不经历一些与您相同的问题,但我在 GTX 650 + CUDA 6.5 设置上得到了它。

    我将描述我必须对 KMLIB 的构建/依赖项进行的更改:

    1. CUDAfy 不适用于 CUDA 6.5:我完全不确定 KMLib 如何使用 CUDAfy。除了访问 CUDA.NET API(这是一个与 CUDAfy 合并的单独项目)之外,它实际上可能不会将它用于任何事情。我不得不对 CUDAfy 进行多项更改,以减少对大脑的损害,但我建议您尝试用 CUDA.NET 替换参考,看看它是否真的需要 CUDAfy。如果这对您不起作用,请告诉我,我会想办法与您分享我的 CUDAfy/6.5 版本
    2. 您遇到的具体 GASS.CUDA.CUDAException 实际上记录在 KMLib's web-page 上,尽管有些晦涩:

        -arch=sm_21 or -arch=sm_30 – indicates compute capability, former if for Fermi
        cards(e.g Geforce 470), latter is for Kepler cards (e.g. GeForce 690), it 
        is very important to set this switch depending on yours card compute capability
      

      因此,您遇到的问题与 GFX 卡 (Fermi/Kepler/Maxwell) 的架构与构建后步骤中的 nvcc 命令行不符有关。我不知道作者指定的 sm_30 是否适用于 770 卡,但我最终使用了以下命令行,更改了计算模型、着色器模型和视觉工作室路径(因为 CUDA 6.5 usus VS 2013,和我一样):

      nvcc -I./ KernelsEllpackCol2.cu KernelsCSR.cu KernelsEllpack.cu KernelsSlicedEllpack.cu gpuFanSmoSolver.cu gpuFOSmoSolver.cu -ccbin "%VS120COMNTOOLS%../../VC/bin" -m64  -cubin -gencode=arch=compute_30,code=sm_30  -Xptxas="-v"
      

      您需要更改 port-build 以反映您的构建系统。

    【讨论】:

      猜你喜欢
      • 2021-10-23
      • 2022-08-21
      • 1970-01-01
      • 2018-07-13
      • 2017-03-01
      • 2021-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多