调试cuda程序

Posted zjutzz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调试cuda程序相关的知识,希望对你有一定的参考价值。

参考:http://galoisplusplus.coding.me/blog/2018/05/22/cudaErrorCudartUnloading/

主要是在linux下,使用cuda安装包里的cuda-memcheck来检查内存,它是类似于valgrind的存在。

首先添加path:

vim ~/.zshrc
export PATH=$PATH:/usr/local/cuda/bin

基于CMake编写C程,cuda相关的内容:

option(use_cuda "Use CUDA?" ON)

if (use_cuda)
    if (CMAKE_SYSTEM_NAME MATCHES "Linux")
        set(CUDA_DIR "/usr/local/cuda")
        set(CUDA_INC_DIR "${CUDA_DIR}/include")
        set(CUDA_LIB_DIR "${CUDA_DIR}/lib64")
    elseif (CMAKE_SYSTEM_NAME MATCHES "Windows")
        set(CUDA_DIR "$ENV{CUDA_PATH}")
        set(CUDA_INC_DIR "${CUDA_PATH}/include")
        set(CUDA_LIB_DIR "${CUDA_DIR/lib/x64}")
    endif()
    find_package(CUDA REQUIRED)
    include_directories(${CUDA_INC_DIR})
    link_directories(${CUDA_LIB_DIR})
endif()


if(use_cuda)
    list(APPEND TESTBED_DEP_LIBS
        cudart
        cudart_static
        cuda
        cublas_device
        cudnn
        cublas
    )
endif()

target_link_libraries(testbed ${TESTBED_DEP_LIBS})

使用:

cd ~/work/mycode
mkdir build
cd build
cmake ..
make

cuda-memcheck ./run

以上是关于调试cuda程序的主要内容,如果未能解决你的问题,请参考以下文章

在导出DLL的非启动项目中使用Nsight调试CUDA代码

CUDA并行程序设计 开发环境搭建与远程调试

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

运行/调试你的PHP代码

RuntimeError: ‘lengths’ argument should be a 1D CPU int64 tensor, but got 1D cuda:0 Long tensor(代码片段

调试cuda程序一定要细心啊 不然一个bug会折腾你2天