1. 程式人生 > >除錯cuda程式

除錯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