- NVIDIA Deep Learning Manual
아래사이트에서 궁금한 내용은 각각 아이콘을 클릭해서 들어가자
https://developer.nvidia.com/deep-learning-software
- NVIDIA TensorRT
https://developer.nvidia.com/tensorrt
- TensorRT 기본기능 설명
https://devblogs.nvidia.com/speed-up-inference-tensorrt/
- TensorRT Cloud (nvidia-docker, x86만 지원하며, ARM 아직 미지원)
- TensorRT python API 사용방법 소개
- TensorRT의 DLA( Deep Learning Accelerator)
https://docs.nvidia.com/deeplearning/sdk/tensorrt-developer-guide/index.html#dla_topic
- TensorRT의 제약사항 (필수확인)
https://docs.nvidia.com/deeplearning/sdk/tensorrt-support-matrix/index.html
https://docs.nvidia.com/deeplearning/sdk/tensorrt-support-matrix/index.html#layers-matrix
https://docs.nvidia.com/deeplearning/sdk/tensorrt-support-matrix/index.html#hardware-precision-matrix
https://docs.nvidia.com/deeplearning/sdk/tensorrt-developer-guide/index.html
- TensorRT의 성능측정
현재 Jetson TX2도 Nsight를 지원하지만, 이는 동작성능측정인 것 같다.
추후 Tensorflow의 Tensorboard로 분석하는 법을 배워야할 것 같다.
(우선 Tensorflow부터)
https://docs.nvidia.com/deeplearning/sdk/tensorrt-best-practices/index.html
https://docs.nvidia.com/deeplearning/sdk/tensorrt-best-practices/index.html#profiling
- TensorRT Sample (C++/python)
https://docs.nvidia.com/deeplearning/sdk/tensorrt-sample-support-guide/index.html
- TensorRT (x86용 설치)
- TensorRT의 함수 (Graph Surgeon)
https://docs.nvidia.com/deeplearning/sdk/tensorrt-api/python_api/graphsurgeon/graphsurgeon.html
- TensorRT의 UFF/Caffe/Onnx Parser 함수
현재 별도의 명령어로 Conver는 존재
https://docs.nvidia.com/deeplearning/sdk/tensorrt-api/python_api/parsers/Uff/pyUff.html
- TensorRT의 Python Network 구성 (Layer)
https://docs.nvidia.com/deeplearning/sdk/tensorrt-api/python_api/infer/Graph/pyGraph.html#
- TensorRT의 Python Core 기능
Profiler를 별도로 제공하며, 이를 분석하고 사용하는 도구가 무엇인지는 차후에 찾아보자
https://docs.nvidia.com/deeplearning/sdk/tensorrt-api/python_api/infer/Core/pyCore.html
https://docs.nvidia.com/deeplearning/sdk/tensorrt-api/python_api/infer/Core/Profiler.html
- TensorRT Userful Resource
https://docs.nvidia.com/deeplearning/sdk/tensorrt-best-practices/index.html
http://on-demand.gputechconf.com/gtcdc/2017/video/DC7172/
https://devblogs.nvidia.com/tensorrt-4-accelerates-translation-speech-recommender/
http://on-demand.gputechconf.com/gtc/2018/video/S8822/
1.1 NVIDIA에서 사용되는 용어 정리
NVIDIA의 Manual을 보면 약어들이 존재해서 혼란하게 만들어서 관련부분들을 간단히 정리하여 적는다.
최근부터 NVIDIA에서 한글지원을 해주고 있으므로, 가능하다면 한글로 보자.
- DGX: NVIDIA Workstation 인지 기기인지 좀 혼동, 추측으로 Workstation (홈페이지에서 세부설명이 없어혼동)
- NGC: NVIDIA GPU Cloud 로 x86기반으로 지원 (Docker)
아래의 Product부분참조
1.2 NVIDIA DGX System
HGX는 이름만 존재하며, 아직 정식버전은 없는 것 같다.
DGX도 여러 종류가 존재하며, 빠른 train을 위한 Workstation으로 이용가능할 것 같으며, 클라우딩도 지원 및 다중 GPU도 지원이 되어 성능이 빠른 것 같다
- NVIDIA DGX Series
https://www.nvidia.com/en-us/data-center/dgx-pod-reference-architecture/
https://www.nvidia.com/en-us/data-center/dgx-systems/
https://www.nvidia.com/ko-kr/data-center/dgx-station/
https://youtu.be/PuZ2F87Lqg4
- Tensorflow -> TensorRT
1.3 NVIDIA의 Docker 사용
NVIDIA의 Docker의 구성은 다음과 같다.
- docker : x86 과 ARM 지원
- nvidia-docker : ARM은 아직 미지원
NVIDIA에서는 GPU Cloud를 이용하여 Docker기능을 좀 더 제공을 하고 있으며, 이 때 사용하는 것이 nvidia-docker 이지만, 이는 ARM은 아직 지원하지 않는다.
처음 nvidia-docker가 ARM을 지원을 하는줄 알고 착각하여 좀 삽질을 했다.
NVIDIA GPU Cloud 및 NVIDIA-DOCKER(nvidia-docker) 는 Host PC에서 사용되는 기능으로 주로 Training 과 이를 Test 하기 위해서 사용되는 것 같다.
개인생각으로는 추후에 ARM도 지원을 해줄 것 같은데, 그때 자세히 알아보자.
NVIDIA-DOCKER 지원 (Host PC만 지원 , ARM 미지원 )
https://github.com/NVIDIA/nvidia-docker/issues/214
https://github.com/NVIDIA/nvidia-docker/wiki
https://github.com/NVIDIA/nvidia-docker/wiki/Frequently-Asked-Questions#do-you-support-tegra-platforms-arm64
https://www.nvidia.co.kr/content/apac/event/kr/deep-learning-day-2017/dli-1/Docker-User-Guide-17-08_v1_NOV01_Joshpark.pdf
- NVIDIA GPU Cloud (NGC) 가입 및 이용
https://ngc.nvidia.com/catalog/containers/nvidia:tensorrt
- TensorRT의 Docker 사용방법
상위의 문서를 보면 DGX를 이용하지 않는다면, NVIDIA® GPU Cloud™ (NGC) 문서를 참고하라고 해서 이것을 참고
https://docs.nvidia.com/ngc/ngc-getting-started-guide/index.html
- Jetson TX2 에서 docker를 이용하여 TensorRT 설치 시도
nvidia@tegra-ubuntu:~/jhlee$ mkdir docker nvidia@tegra-ubuntu:~/jhlee$ cd docker nvidia@tegra-ubuntu:~/jhlee/docker$ sudo docker pull nvcr.io/nvidia/tensorrt:19.05-py3 [sudo] password for nvidia: 19.05-py3: Pulling from nvidia/tensorrt 7e6591854262: Pulling fs layer 089d60cb4e0a: Pulling fs layer 9c461696bc09: Pulling fs layer 45085432511a: Pull complete 6ca460804a89: Pull complete 2631f04ebf64: Pull complete 86f56e03e071: Pull complete 234646620160: Downloading [=====================> ] 265.5MB/615.2MB 7f717cd17058: Verifying Checksum e69a2ba99832: Download complete bc9bca17b13c: Download complete 1870788e477f: Download complete 603e0d586945: Downloading [=====================> ] 214.3MB/492.7MB 717dfedf079c: Download complete 1035ef613bc7: Download complete c5bd7559c3ad: Download complete d82c679b8708: Download complete .... $ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE nvcr.io/nvidia/tensorrt 19.05-py3 de065555c278 2 weeks ago 3.83GB
Nvidia docker 기반에 TensorRT 동작
https://docs.nvidia.com/deeplearning/sdk/tensorrt-container-release-notes/running.htmlNvidia Docker (Docker에 Cuda기능추가)
https://devblogs.nvidia.com/nvidia-docker-gpu-server-application-deployment-made-easy/
Jetson TX2 자료로 Docker 검색가능
https://elinux.org/Jetson_TX2
https://github.com/nvidia/nvidia-docker/wiki/Installation-(version-2.0)
https://nvidia.github.io/nvidia-docker/
https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetsontx2/index.html
https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-tx2/
https://developer.nvidia.com/isaac-sdk
https://developer.nvidia.com/nsight-systems
https://developer.nvidia.com/nsight-graphics
Jetson TX2 자료로 Docker 검색가능
https://elinux.org/Jetson_TX2
- nvidia-docker 설치
https://github.com/nvidia/nvidia-docker/wiki/Installation-(version-2.0)
https://nvidia.github.io/nvidia-docker/
- Jetson의 개발환경 구축 (PC)
- Tensorflow for Jetson TX2
https://docs.nvidia.com/deeplearning/frameworks/install-tf-jetsontx2/index.html
https://www.nvidia.com/en-us/autonomous-machines/embedded-systems/jetson-tx2/
- Jetson TX2의 Jetpack 과 Issack SDK 관련자료
https://developer.nvidia.com/isaac-sdk
- Nsight
https://developer.nvidia.com/nsight-systems
https://developer.nvidia.com/nsight-graphics