웬디의 기묘한 이야기

글 작성자: WENDYS
반응형

젯슨나노 Jetson Nano CUDA 사용을 위한 GPU Architecture 설정

jetson nano를 이용하여 YOLOv3를 사용하게 되면 Makefile에 기본값은 다음과 같이 입력되어있고 build도 문제없이 되는 것을 이전 글을 통해 확인할 수 있습니다.

ARCH= -gencode arch=compute_30,code=sm_30 \
      -gencode arch=compute_35,code=sm_35 \
      -gencode arch=compute_50,code=[sm_50,compute_50] \
      -gencode arch=compute_52,code=[sm_52,compute_52] \
      -gencode arch=compute_61,code=[sm_61,compute_61]

 

하지만 원래 CUDA를 사용하기위해선 CUDA Compute Capability를 설정해주어야 합니다.

NVIDIA 공식 홈페이지에서 확인할 수 있습니다.

https://developer.nvidia.com/cuda-gpus

 

CUDA GPUs

Recommended GPU for Developers NVIDIA TITAN RTX

developer.nvidia.com

확인 결과 젯슨 나노에 사용되는 코드는 5.3으로 확인되었다. 

 

Jetson Nano GPU CUDA Compute Capability

 

그렇다면 YOLOv3의 Makefile 값에 Jetson Nano의 Copute Capability값인 53을 추가하기만 하면 됩니다.

어떤 머신에서 돌아갈지 확실치 않기 때문에 다양한 옵션으로 지정할 수 있으며,

허용되지 않는 Architecture라면 nvcc fatal: Unsupported gpu architecture 'compute_XX' 에러가 발생할 수 있습니다.

ARCH= -gencode arch=compute_30,code=sm_30 \
      -gencode arch=compute_35,code=sm_35 \
      -gencode arch=compute_50,code=[sm_50,compute_50] \
      -gencode arch=compute_52,code=[sm_52,compute_52] \
      -gencode arch=compute_53,code=[sm_53,compute_53] \
      -gencode arch=compute_61,code=[sm_61,compute_61]

 

Jetson Nano에서 CUDA를 직접 사용하는 환경에서는 다음과 같이 설정하기도 합니다.

CUDA_ARCH := -gencode arch=compute_53,code=sm_53 \
             -gencode arch=compute_53,code=compute_53

 

반응형