xmake는 Cuda 코드 컴파일에 대한 지원을 추가합니다.

최근에 NVIDIA Cuda Toolkit의 컴파일 환경을 연구하고 xmake 2.1.10의 개발 버전에서 cuda 컴파일 환경에 대한 지원이 추가되었으며 *.cu코드 를 직접 컴파일 할 수 있습니다 .

Cuda Toolkit 관련 지침 및 설치 문서는 공식 문서 인 CUDA Toolkit Documentation을 참조하십시오 .

Cuda SDK를 다운로드하여 설치 한 후 기본적으로 macosx의 /Developer/NVIDIA/CUDA-x.x디렉토리에 설치합니다. CUDA_PATH해당 SDK 디렉토리 는 Windows 의 환경 변수 를 통해 찾을 수 있으며 디렉토리
는 기본적으로 Linux에 설치됩니다 /usr/local/cuda.

xmake $ xmake*.cu코드 를 컴파일하기 위해 명령을 실행하면 이러한 기본 설치 디렉토리를 감지 한 다음 nvcc 컴파일러를 호출하여 cuda 프로그램을 직접 컴파일합니다. 대부분의 경우 다음을 실행하기 만하면됩니다.

$ xmake

Cuda 프로젝트 생성 및 컴파일

컴파일하기 전에 xmake를 통해 빈 cuda 프로젝트를 만들 수 있습니다. 예를 들면 다음과 같습니다.

$ xmake create -l cuda test
$ cd test
$ xmake

-l매개 변수 사양에 따라 cuda 코드 프로젝트 생성하고 프로젝트 이름은 test이고 실행 출력은 다음과 같습니다.

[00%]: ccache compiling.release src/main.cu
[100%]: linking.release test

이 cuda 프로그램을 직접 실행할 수도 있습니다.

$ xmake run

그런 다음이 cuda 프로젝트의 xmake.lua파일을 살펴 보겠습니다 .

-- define target
target("test")

    -- set kind
    set_kind("binary")

    -- add include directories
    add_includedirs("inc")

    -- add files
    add_files("src/*.cu")

    -- generate SASS code for each SM architecture
    for _, sm in ipairs({
   
   "30", "35", "37", "50", "52", "60", "61", "70"}) do
        add_cuflags("-gencode arch=compute_" .. sm .. ",code=sm_" .. sm)
        add_ldflags("-gencode arch=compute_" .. sm .. ",code=sm_" .. sm)
    end

    -- generate PTX code from the highest SM architecture to guarantee forward-compatibility
    sm = "70"
    add_cuflags("-gencode arch=compute_" .. sm .. ",code=compute_" .. sm)
    add_ldflags("-gencode arch=compute_" .. sm .. ",code=compute_" .. sm)

대부분은 C / C ++ 프로젝트 설명과 유사하지만, 유일한 차이점은 add_cuflags일부 cuda 코드 별 컴파일 옵션을 설정하여 사용자의 필요에 따라 구성의이 부분을 직접 조정할 수 있다는 것입니다.

자세한 add_cuflags지침 은 xmake 공식 문서를 참조하십시오 .

Cuda 컴파일 환경 구성

기본적으로 xmake는 시스템에 설치된 Cuda SDK 환경을 성공적으로 감지 할 수 있습니다. 사용자는 추가 구성 작업을 수행 할 필요가 없습니다. 물론 감지되지 않으면 사용자가 Cuda SDK의 경로를 수동으로 지정할 수도 있습니다.

$ xmake f --cuda_dir=/usr/local/cuda
$ xmake

xmake에게 현재 Cuda SDK 설치 디렉토리가 어디에 있는지 알려주십시오.

현재 cuda 환경에 대한 xmake의 감지 지원을 테스트하려면 직접 실행할 수 있습니다.

$ xmake l detect.sdks.find_cuda_toolchains
{
    linkdirs =
    {
        /Developer/NVIDIA/CUDA-9.1/lib
    }

,   bindir = /Developer/NVIDIA/CUDA-9.1/bin
,   includedirs =
    {
        /Developer/NVIDIA/CUDA-9.1/include
    }

,   cudadir = /Developer/NVIDIA/CUDA-9.1
}

감지 상황을 테스트 하기 위해 관련 감지 코드 find_cuda_toolchains.lua 를 제공하여 xmake 의 감지 프로세스를 개선 할 수도 있습니다.

기타 지침

참고 : 현재 방금 완료된 cuda에 대한 지원은 공식 버전을 발행하지 않았습니다. xmake 지원 및 cuda 진행에 대한 자세한 내용은 다음을 참조하십시오. AND DELINQUENCY # 158 .

이 기능을 사용하려면 최신 마스터 버전을 다운로드하여 설치 하거나 Windows 2.1.10-dev 설치 패키지를 다운로드하면 됩니다 .

원본 출처 : http://tboox.org/cn/2018/03/09/support-cuda/

추천

출처blog.csdn.net/waruqi/article/details/79662958