1.项目设置
使用QT在Linux(Ubuntu)下开发C++软件时,使用CUDA进行加速。首先是在ubuntu下配置好cuda的开发环境,可参照其他相关博客。
在.pro中进行配置:
CUDA_DIR = /usr/local/cuda-11.0
CUDA_LIBS = -lcudart -lcuda
INCLUDEPATH += $$CUDA_DIR/include
QMAKE_LIBDIR += $$CUDA_DIR/lib64
LIBS += $$CUDA_LIBS
CUDA_SOURCES += HelloCuda.cu
#CUDA编译器配置
#GPU架构
SYSTEM_TYPE = 64
CUDA_ARCH = sm_61
NVCCOPTIONS = -use_fast_math -O2
#调试模式下,-g 表示将CPU代码(host)编译成可调式版本,-G表示将GPU代码(kernel)编译成可调式版本。
debug
{
NVCCOPTIONS += -g -G
}
CUDA_INC = $$join(INCLUDEPATH,' -I','-I',' ')
cuda.input = CUDA_SOURCES
cuda.output = ${OBJECTS_DIR}${QMAKE_FILE_BASE}_cuda.o
cuda.commands = $$CUDA_DIR/bin/nvcc $$NVCCOPTIONS $$CUDA_INC $$CUDA_LIBS --machine $$SYSTEM_TYPE -arch=$$CUDA_ARCH -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME} 2>&1 | sed -r \"s/\\(([0-9]+)\\)/:\\1/g\" 1>&2
cuda.dependency_type = TYPE_C
QMAKE_EXTRA_COMPILERS += cuda
上述在QtCreator中增加了cuda的编译设置。根据实际环境配置路径和源文件。
2.调试配置
QtCreator中默认是使用gdb进行调试,此时无法调试进入.cu文件,我们通过cuda-gdb进行替代,从而实现.cu文件的调试。
1.检查cuda-gdb位置
$ which cuda-gdb
/usr/local/cuda-11.0/bin/cuda-gdb
2.设置QtCreator
进入QtCreator>Option>Kit>Debuggers>Add
Name:CUDA_GDB
Path:/usr/local/cuda-11.0/bin/cuda-gdb
应用>保存。
进入QtCreator>Option>Kit>Kit
选择使用的kit,我是用的是Desktop Qt 5.13.2 GCC 64bit(默认)
修改 Debugger:CUDA_GDB。
应用>保存。
此时已经完成了调试器的替换。即可以在cpp、cu中设置断点进行在线调试。