TensorRT란?
TensorRT는 NVIDIA gpu를 사용하여 onnx나 tensorflow와 같은 deep learning 모델들을 최적화시켜 모델의 처리 속도를 향상시켜주는 엔진으로 요즘 nvidia gpu에서 deep learning model을 추론하기 위해 많이 사용되고 있다.
밑의 링크는 tensorrt홈페이지와 tensorrt에 대한 설명이 되어 있는 블로그로 들어가 보면 tensorrt에 대해 설명이 잘 되어 있다.
https://developer.nvidia.com/tensorrt
https://eehoeskrap.tistory.com/414
architecture 별로 호환성을 확인해야 하는 이유
onnx나 tensorflow 등의 deep learning 모델들을 tensorrt engine으로 모델을 변환하고 다른 gpu가 장착되어 있는 pc에 변환된 모델을 가져다 쓰다 보면 모델이 돌아갈 때도 있지만 돌아가지 않거나 성능이 달라지는 결과를 볼 경우가 있다.
tensorrt engine으로 변환된 deep learning 모델은 변환 시에 사용된 pc에 꽃혀 있는 gpu의 sm architecture에 최적화되어 있다.
다른 architecture에서는 공통적인 instruction으로 치환하여 앤진을 load하고 inference를 수행할 수 있지만, 최적의 instruction으로 선택되어 돌지 않기 때문에 성능상의 drop이 발생하게 될 수 있다.
따라서, 사용하고 있는 pc에 있는 gpu의 sm architecture를 확인한 후 같은 architecture에서 Inference를 수행하는 게 가장 좋은 성능을 보여줄 수 있다.
sm architecture compatibility matrix
밑에 표는 gpu 별 지원하는 최소 cuda version과 sm architecture를 보여준다.
표를 보고 사용하는 gpu에 맞춰서 사용하면 된다.
GPU Architecture | GPU compatibility | nvcc arch / gen code |
Nvidia GPU Example |
Pascal | cuda8.0 ~ | sm_60 / compute_60 | Quadro GP100, Tesla P100 ... |
sm_61 / compute_61 | GTX-1080,1070,1060,1050,1030 TitanXP, Tesla P40 ... |
||
sm_62 / compute_62 | Jetson TX2, Drive PX2 ... | ||
Volta | cuda9.0 ~ | sm_70 / compute_70 | Tesla V100, GTX-1180, Titan V, Quadro GV100 ... |
sm_72 / compute_72 | Jetson AGX, Xavier, Drive AGX pegasus ... | ||
Turing | cuda 10.0 ~ | sm_75 / compute_75 | GTX-1660Ti. RTX-2060, 2070, 2080, Titan RTX, Quadro RTX 4000, 5000, 6000, 8000 ... |
Ampere | cuda 11.0 ~ | sm_80 / compute_80 | Nvidia tensorcore GPU A100, |
sm_86 / compute_86 | RTX-30 series, RTX A4000, A5000, A6000, NVIDIA A40 | ||
Hopper |
'Development > TensorRT' 카테고리의 다른 글
[TensorRT] trtexec dumpProfile / profilingVerbosity / dumpLayerInfo option (0) | 2022.04.21 |
---|---|
[TensorRT] Ubuntu docker container를 이용한 TensorRT 사용 (0) | 2021.09.17 |
[TensoRT] SM version not supported in this NVRTC version 오류 해결 (0) | 2021.08.30 |
[TensorRT]Onnx모델을 tensorrt모델로 변환 (0) | 2021.08.19 |
댓글