TensorRT의 trtexec 도구를 사용하여 ONNX 모델을 TensorRT 엔진으로 변환할 때 변환 속도를 가속화 할 수 있는 옵션들에 대한 설명
--timingCacheFile={FILE_NAME}
타이밍 캐시 파일을 지정. 이 파일을 사용하면 여러 번의 빌드에서 타이밍 정보를 재사용하여 빌드 시간을 단축할 수 있다.
--avgTiming=1
각 레이어의 성능 평가를 위해 사용하는 반복 횟수를 지정. 기본적으로 여러 번 반복하여 평균값을 사용하지만, --avgTiming=1은 한 번만 반복하여 타이밍을 측정합니다. 이를 통해 빌드 속도를 높일 수 있다.
--workspace=1024
워크스페이스 크기를 메가바이트 단위로 지정한다. 워크스페이스는 엔진을 최적화하고 빌드하는 동안 사용하는 메모리 공간이다. 모델의 크기와 복잡도에 따라 이 값을 조정할 수 있다.
--builderOptimizationLevel=0
빌더 최적화 수준을 지정.(이 옵션은 TensorRT 8.0 이상에서 사용 가능)
최적화 수준은 0에서 5까지 있으며, 높은 수준의 최적화는 더 긴 빌드 시간을 필요로 하지만 더 나은 런타임 성능을 제공.
--tacticSources=-CUBLAS,-CUBLAS_LT,-CUDNN,-EDGE_MASK_CONVOLUTIONS,-JIT_CONVOLUTIONS
사용할 전술(전략) 소스를 지정.(이 옵션은 TensorRT 8.6 이상에서 사용 가능)
특정 전술을 사용하지 않도록 하려면 - 기호를 붙인다.
이를 통해 특정 전술 소스를 제외하고 모델을 최적화할 수 있음
아래는 onnx to tensorrt 변환을 위한 윈도우 배치(bat) 파일 예시
배치파일 변수 MODEL_NAME 에 변환할 모델 파일 명(확장자 제외)을 수정해주고 배치파일을 실행시키면 된다.
@echo off
echo *******************************************************************************
echo ********* ONNX TO TRT Model Converter *********
echo *******************************************************************************
timeout 3 > NUL
SET MODEL_NAME=yolov10s
echo - model_name : %MODEL_NAME%
.\trtexec.exe ^
--onnx=%MODEL_NAME%.onnx ^
--saveEngine=%MODEL_NAME%.trt ^
--timingCacheFile=%MODEL_NAME%.cache ^
--fp16 ^
--avgTiming=1 ^
--workspace=1024 ^
--builderOptimizationLevel=0 ^
--tacticSources=-CUBLAS,-CUBLAS_LT,-CUDNN,-EDGE_MASK_CONVOLUTIONS,-JIT_CONVOLUTIONS