Programming/TensorRT

Programming/TensorRT

[TensorRT 변환] ONNX2TensorRT(transformation and inference)

TensorRT serialize & deserialize code with using dynamic batch TensorRT serialize & deserialize code with using dynamic batch - tensorrt.py gist.github.com 파이썬으로 Onnx 파일을 불러와 engine파일로 직렬화하여 변환하여 저장하고, (다이나믹 배치 포함) 다시 그 파일을 불러와서 inferenc하는 코드이다. TensorRT Version : 8.2.2.1 전에 pytorch모델을 onnx로 변환하는 방법은 아래 포스팅에 pytorch method 옵션과 함께 간략히 적어뒀다. torch.onnx.export() option torch.onnx.export Signature: ..

Programming/TensorRT

trtexec 옵션 및 예시

trtexec -h === Model Options === --uff= UFF model --onnx= ONNX model --model= Caffe model (default = no model, random weights used) --deploy= Caffe prototxt file --output=[,]* Output names (it can be specified multiple times); at least one output is required for UFF and Caffe --uffInput=,X,Y,Z Input blob name and its dimensions (X,Y,Z=C,H,W), it can be specified multiple times; at least one is r..

Programming/TensorRT

데이터 직렬화(Serialize)와 역직렬화(Deserialize)

직렬화(Serialize) 프로그램에서 객체와 같은 메모리의 내용을 물리적으로 디스크에 저장하거나 네트워크 전송을 위해서 단순하고 연속적인 바이트스트림으로 변환하는 것. 역직렬화(Deserialize) 직렬화와 반대로 직렬화 된 데이터(바이트스트림)를 다시 프로그램에서 사용가능한 객체로 변환하는 것. 참고 [Java] 직렬화와 역직렬화 java-study에서 스터디를 진행하고 있습니다. 데이터 직렬화와 역직렬화 데이터 직렬화 메모리를 디스크에 저장하거나, 네트워크 통신에 사용하기 위한 형식으로 변환하는 것이다. 데이터 역직렬 steady-coding.tistory.com -> 자바언어로 설명되어있지만 직렬화와 역직렬화의 개념에 대해서 아주 자세히 설명되어있어서 이 글을 보고 내용을 이해했다. 직렬화(Se..

Programming/TensorRT

[TensorRT] *.engine 과 *.trt 차이점

TensorRT를 공부하다보면 모델 저장시 확장자를 engine 또는 trt로 사용하곤 하는데 이 차이점이 궁금했다. 찾아 본 결과, 결론은 둘의 차이는 없다. What's the difference between engine file and trt file? Can any one tell me the difference ? Thanks forums.developer.nvidia.com

Programming/TensorRT

pycuda 개념 및 사용 예시

PyCUDA란? PyCUDA는 파이썬에서 CUDA를 사용하기 위한 라이브러리 CUDA는 NVIDIA 그래픽 카드에서 병렬처리를 위해 사용되는 플랫폼으로 PyCUDA는 파이썬 개발자가 CUDA C/C++ 코드를 직접 작성하지 않고도 파이썬에서 CUDA를 사용할 수 있게 해준다. 이를 통해 파이썬에서 고성능 계산을 수행할 수 있다. DOCS pycuda 2022.2.2 documentation Next Installation documen.tician.de 1. 초기화 Pycuda 를 사용하기 전에 import하면서 autoinit으로 자동으로 초기화 할 수 있다. autuinit을 import하지 않으면 오류가 나고, 이 과정은 수동으로도 진행할 수 있다. import pycuda.driver as cud..

Programming/TensorRT

TensorRT 환경 설정: 도커 컨테이너

TensorRT를 이용하는 방법으로는 1. 컨테이너 이용 2. 데비안 설치가 있는데 환경이 꼬이면 답이 없기 때문에 컨테이너를 이용했다. 컨테이너를 이용하기 전에 로컬환경에 당연히 도커가 설치되어있어야하고, 컨테이너 환경에서 gpu를 사용하기 위해 nvidia-docker 설정을 해야하고 NGC를 이용가능한 상태여야한다. Nvidia Docker Installation (Native GPU Support) Build and run Docker containers leveraging NVIDIA GPUs - NVIDIA/nvidia-docker github.com Preparing To Use Docker Containers - NVIDIA Docs Note: Starting with DGX release..

Programming/TensorRT

TensorRT란?

TensorRT는 만들 딥러닝 모델을 최적하하고, 모델의 크기를 줄이거나 gpu 환경에 최적화시켜 계산 속도를 높이는 등의 목적을 위해 사용하는 Nvidia에서 개발한 SDK로 딥러닝 모델의 배포를 위해 쓰인다. TensorRT의 WorkFlow는 다음과 같다 TensorRT를 처음 접하자마자 이 그림을 보면 이해가 안될 수 있지만 어느정도 해보고나서 본다면 워크플로우가 아주 잘 설명된 그림인 것을 알 수 있다. TensorFlow나 Pytorch 등 다양한 프레임워크를 지원한다. 나는 pytorch로 빌드한 모델을 Onnx모델로 먼저 변환한 후 onnx를 다시 TensorRT 모델로 바꾸었다. ONNX 변환은 일반적으로 ONNX 모델을 TensorRT 엔진으로 자동 변환하는 가장 성능이 좋은 방법이다...

Heaea
'Programming/TensorRT' 카테고리의 글 목록