Knowhow/ONNX, TensorRT

[TensorRT 튜토리얼] 2. Docker container

침닦는수건 2024. 1. 19. 17:03
반응형

이전 글 [TensorRT 튜토리얼] 1. Installing TensorRT 에서 docker container를 이용하는 방식은 설치와는 사실 무관하니 생략했지만, 실제로 사용할 때는 무조건 docker를 쓰게 될 것이므로 따로 정리했다. 

 

TensorRT container에는 TensorRT를 이용한 build, modify, execute 모두가 가능하도록 세팅이 되어있다. 더불어 NVIDIA deep learning sofward library가 추가되면 매달 업데이트 되는 새로운 container에 같이 설치되어 있다. (monthly update이므로 관리가 잘되어 좋다.)

 

NVIDIA docker document 를 확인해보면 가장 최신 release container 정보를 확인할 수 있고 각각이 어떤 key feature를 새로 내장하게 되었는지 설명되어 있다.

 

Prerequisite

Document를 보면, NVIDIA DGX, NGC registry 관련된 내용을 무시하면 되고 docker만 설치되어 있으면 된다. 

 

단, Docker가 너무 오래된 버전이면 문제가 있으니 새로 설치하는게 좋다. 19.03 이후 버전일 경우 상관없다. 

docker --version
// version >= 19.03 : OK
// version < 19.03 : re-install recommended

 

Pulling a image 

 

NVIDIA TensorRT Container Versions 테이블이 위 공식 홈페이지에 가면 게재되어 있다. ubuntu, CUDA , TensorRT 버전을 확인한 뒤 적합한 docker image 버전을 찾으면 된다. 

 

docker pull nvcr.io/nvidia/tensorrt:xx.xx-py3
docker images
// nvcr.io/nvidia/tensorrt 		xx.xx-py3		~~~

 

xx.xx 위치에 container 버전을 기재하면 pull이 될 것이다. 보통 8~10GB 사이의 이미지가 pull된다.

 

Building a image

만약 특별한 수정이 필요하다면 직접 도커 이미지를 빌드할 수도 있다. TensorRT github에 가보면 docker/ 하위에 DockerFile들이 제공되어 있다. 여기서 DockerFile 내 필요한 내용을 수정한 뒤 직접 docker build하면 되겠다. 

 

이게 그리 권장되는 방식은 아니다 보니, DockerFile 업데이트는 이미지 업데이트만큼 빈번하지 않아 최신 버전을 보장할 순 없다.

 

하지만 기준 DockerFile로 쓰긴 충분하다.

docker built --no-cache -f ubuntu-20.04.DockerFile .

 

 

Running a container

docker run --gpus all -it --rm -v local_dir:container_dir nvcr.io/nvidia/tensorrt:<xx.xx>-py<x>

 

받은 docker image로 container를 띄우는 것은 특별한 것 없다. 위에 적혀있는 태그들은 일반적으로 많이 쓰는 태그일 뿐 의무적인 태그는 역시 아니다.

 

-v, volume mount 잘하고 사용하면 된다. 혹시 태그가 무슨 의미인지 모른다면 이전 글을 참고하면 된다.

 

반응형