[Rtk-users] Fix the issue when use RTK on Nvidia Kepler	Architecture based GPU.
    刘鹏 
    liupeng_cs at 163.com
       
    Mon Jan 20 04:06:32 EST 2014
    
    
  
Hello,
 
I find an issue when I try to use RTK on a Nvidia Kepler based GPU.
The CUDA initializing always fails.
And I can see an exception about _cudaMutexOperation when any CUDA function is called in debug mode.
 
Exception at 0x7fefd5f940d, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued) (first chance) in cudart64_50_35!_cudaMutexOperation
 
 
Following the guide in
http://docs.nvidia.com/cuda/kepler-compatibility-guide/index.html
 
This issue can be fixed by applying the patch on RTK code:
 
 
===========================================================================
 
diff --git a/cmake/FindCUDA_wrap.cmake b/cmake/FindCUDA_wrap.cmake
index e13a7c3..b40c6da 100644
--- a/cmake/FindCUDA_wrap.cmake
+++ b/cmake/FindCUDA_wrap.cmake
@@ -59,9 +59,19 @@ set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS}
     )
 
 if(CUDA_VERSION_MAJOR GREATER "2")
-  set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS}
-        -gencode arch=compute_20,code=sm_20
-    )
+  IF(${CUDA_VERSION} LESS 5.0)
+   set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS}
+         -gencode arch=compute_20,code=sm_20
+         -gencode arch=compute_20,code=compute_20
+     )
+  ELSE()
+   set (CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS}
+         -gencode arch=compute_20,code=sm_20
+         -gencode arch=compute_30,code=sm_30
+         -gencode arch=compute_35,code=sm_35
+         -gencode arch=compute_35,code=compute_35
+     )
+  ENDIF()
endif()
 
 if(CUDA_FOUND)
 
============================================================================
 
Regards,
 
Peng Liu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/rtk-users/attachments/20140120/2788ac40/attachment-0008.html>
    
    
More information about the Rtk-users
mailing list