이 글은 TensorRT를 Window의 Visual Studio 환경에서 사용할 수 있도록 local 컴퓨터에 설치하는 내용이다. docker를 이용한 설치는 아래 링크 참조.
Window에서 docker가 GPU를 사용하는 방법은 상당히 까다롭기 때문에, 아예 WSL을 이용해서 Window에 Ubuntu를 설치하고 그 안에서 docker를 설치해서 사용하는 방법을 추천. —물론 이 방법도 간단하지는 않기 때문에 속편한 방법은 CPU 버전 Docker를 사용하는 것이다.
설치
다음 주소에서 원하는 버전을 다운 받는다.
TensorRT를 받을 때는 CUDA 버전이 중요하므로, CUDA 버전을 확인해서 맞는 버전을 다운 받아야 한다. 자신의 컴퓨터에 설치된 CUDA 버전은 CMD나 powershell에서 nvcc —version을 입력하면 된다. (만일 nvcc 명령어가 실행되지 않는다면 CUDA가 안 깔려 있을 수 있으므로 먼저 CUDA 부터 설치)
zip 파일을 다운 받았으면, 압축을 풀고 원하는 경로에 폴더를 옮긴다. (나는 C 드라이브 Root에 TensorRT라는 폴더를 만들고 그 하위에 옮김. 폴더 이름은 버전 정보로 바꿈)
Window 환경변수 등록
이후 설정의 편의를 위해 환경변수를 만들어서 TensorRT가 있는 폴더를 등록한다. —이렇게 만들어서 세팅하면 이후 설치 버전이 바뀌어도 나머지 설정은 건드리지 않고 값만 바꾸어도 빌드가 된다.
환경변수를 생성했으면 Path에 '%TENSORRT_DIR%\lib' 를 추가한다.
Install Guide에는 환경 변수 등록 후에 python을 이용해서 whl 파일을 설치하라고 나오는데, Window에서는 해당 whl 파일이 설치되지 않는다. 이 단계는 pass.
환경변수에 등록한 것이 반영이 되지 않았다면 윈도우를 재시작하거나 CMD에서 set을 입력하면 반영된다.
Visual Studio에 세팅
Visual Studio에서 C++ 라이브러리를 참조할 때 사용하는 동일한 절차대로 세팅한다.
1.
속성을 재사용하기 위한 props 파일 생성
Visual Studio에서 보기 → 다른 창 → 속성 관리자를 선택해서 속성창을 연다.
속성을 추가하려는 프로젝트에 새 프로젝트 속성 시트 추가를 선택한다.
속성 시트를 선택하고 버전을 포함한 정보를 사용하여 이름을 정한다.
TensorRT는 Debug, Release 구분이 없으므로 Debug에 하나 만들고, Release에서는 기존 속성 시트 추가를 해서 Debug의 속성 시트를 사용하도록 한다.
속성 파일을 사용할 때는 프로젝트의 속성의 같은 속성에 부모 또는 프로젝트 기본값에서 상속을 체크하여 상속된 값에 원하는 속성이 있는지 확인해야 한다.
이렇게 추가한 속성은 저장한 뒤 이후 같은 속성을 사용하는 다른 프로젝트에서 불러와서 사용할 수 있다.
2.
헤더 파일 디렉터리 추가.
생성한 속성 시트를 더블 클릭 → C/C++ → 일반 → 추가 포함 디렉터리에 아래의 TensorRT의 헤더파일 경로 추가
•
$(TENSORRT_DIR)\include
3.
라이브러리 파일 디렉터리 추가
생성한 속성 시트를 더블 클릭 → 링커 → 일반 → 추가 라이브러리 디렉터리에 아래의 TensorRT의 라이브러리 경로 추가
•
$(TENSORRT_DIR)\lib
4.
라이브러리 파일 추가
생성한 속성 시트를 더블 클릭 → 링커 → 입력 → 추가 종속성에 <installpath>\lib 경로에 있는 아래의 lib 파일들 추가
•
nvinfer.lib, nvinfer_plugin.lib, nvonnxparser.lib, nvparsers.lib
아래와 같이 NvInfer.h 를 include 하고 빌드가 성공하면 성공
참고) 빌드할 때 CUDA 관련 파일로 에러가 난다면 아래 글을 참고하여 CUDA 세팅을 하면 된다.