CUDA 개발 환경 설정 및 도구 사용법

목차

  • 윈도우에서의 도구
    1. QTCreator를 이용한 CUDA 프로그래밍
  • 1.1 프로젝트 파일 수정
  • 1.2 주의사항
    1. QT 프로젝트를 VS 프로젝트로 변환하여 디버깅
  • 2.1 문제 해결 기록
    1. VSCode를 이용한 CUDA 코드 작성

윈도우에서의 도구

윈도우에서는 VS 또는 QTCreator를 사용하여 CUDA 프로그래밍을 수행할 수 있습니다. 아래에 각 도구의 설정 방법을 설명합니다.

  1. QTCreator를 이용한 CUDA 프로그래밍

1.1 프로젝트 파일 수정

기존 프로젝트에 다음 설정을 추가하세요:

# CUDA 라이브러리 경로 추가
LIBS += -L"/usr/local/cuda/lib64" \
        -lcudart -lcufft

DEPENDPATH += .

# CUDA 소스 파일 추가
CUDA_SOURCES += my_kernel.cu

CUDA_SDK = "/usr/local/cuda-10.1/" # CUDA SDK 설치 경로
CUDA_DIR = "/usr/local/cuda-10.1/" # CUDA 툴킷 설치 경로
SYSTEM_NAME = windows # 시스템 유형 ('windows', 'linux' 등)
SYSTEM_TYPE = 64      # 시스템 비트 (32 또는 64)
CUDA_ARCH = sm_35     # CUDA 아키텍처 타입
NVCC_OPTIONS = --use_fast_math

INCLUDEPATH += $$CUDA_DIR/include
QMAKE_LIBDIR += $$CUDA_DIR/lib/x64/

CUDA_OBJECTS_DIR = ./cuda_build/

CUDA_LIBS = cudart cufft
CUDA_INC = $$join(INCLUDEPATH,'" -I"','-I"','"')
NVCC_LIBS = $$join(CUDA_LIBS,' -l','-l', '')

CONFIG(debug, debug|release) {
    cuda_debug.input = CUDA_SOURCES
    cuda_debug.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}_cuda.o
    cuda_debug.commands = $$CUDA_DIR/bin/nvcc -D_DEBUG $$NVCC_OPTIONS $$CUDA_INC $$NVCC_LIBS --machine $$SYSTEM_TYPE -arch=$$CUDA_ARCH -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
    cuda_debug.dependency_type = TYPE_C
    QMAKE_EXTRA_COMPILERS += cuda_debug
} else {
    cuda_release.input = CUDA_SOURCES
    cuda_release.output = $$CUDA_OBJECTS_DIR/${QMAKE_FILE_BASE}_cuda.o
    cuda_release.commands = $$CUDA_DIR/bin/nvcc $$NVCC_OPTIONS $$CUDA_INC $$NVCC_LIBS --machine $$SYSTEM_TYPE -arch=$$CUDA_ARCH -O3 -c -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
    cuda_release.dependency_type = TYPE_C
    QMAKE_EXTRA_COMPILERS += cuda_release
}

1.2 주의사항

  • 새로운 .cu 파일을 추가할 때마다 .pro 파일에 해당 파일을 추가해야 합니다.
  • 위 설정은 Linux 기준입니다. Windows에서는 적절한 경로로 수정해야 합니다.
  • 컴파일 오류 메시지는 일반적으로 "컴파일 출력" 창에서 확인할 수 있습니다.
  1. QT 프로젝트를 VS 프로젝트로 변환하여 디버깅

QT 프로젝트를 쉽게 Visual Studio 프로젝트로 변환할 수 있습니다. 이를 통해 더 나은 디버깅 환경을 제공받을 수 있습니다.

2.1 문제 해결 기록

변환 과정에서 다음과 같은 문제가 발생할 수 있습니다:

  • 'C:\Program'는 내부 또는 외부 명령어가 아닙니다.와 같은 오류는 경로에 공백이 포함되어 있을 때 발생합니다. 예를 들어 nvcc 경로가 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\nvcc라면, 이 경로를 "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\nvcc"로 변경해야 합니다.
  1. VSCode를 이용한 CUDA 코드 작성

VSCode는 C++ 플러그인과 c_cpp_properties.json 파일을 설정하여 CUDA 헤더 파일 경로를 추가하면 매우 효과적으로 CUDA 코드를 작성할 수 있습니다. 특히, Windows에서는 Visual Studio를 추천하지만, 코드 작성 단계에서는 VSCode가 좋은 선택입니다.

태그: CUDA QTCreator VisualStudio vscode C++

6월 5일 16:31에 게시됨