如何在使用cuda gdb时编写CMakeLists.txt文件



myCMakeLists.txt:

cmake_minimum_required(VERSION 3.16)
project(cmake_and_cuda CUDA CXX C)
find_package(CUDA REQUIRED)
set(CMAKE_CUDA_COMPILER /usr/local/cuda-11.4/bin/nvcc)
set(CMAKE_CUDA_FLAGS ${CMAKE_CUDA_FLAGS} " -g -G ")  # enable cuda-gdb
cuda_add_executable(a a.cu)

我的cuda代码:

#include<stdio.h>
__global__ void helloFromGPU(void){
printf("Hello  thread %d!n",threadIdx.x);
}
int main(void){
helloFromGPU<<<1,10>>>();
cudaDeviceReset();
return 0;
}

然后我使用CUDA gdb在函数helloFromGPU(void)处添加断点,但我无法进入内核函数helloFromGPU(void),程序在函数末尾中断。

我认为cmake文件写得不正确,我该如何修改它?

设置"CUDA_NVCC_FLAGS"如下:

set(
CUDA_NVCC_FLAGS
${CUDA_NVCC_FLAGS};
-g -G
)

最新更新