TensorRT의 경우 꾸준히 version 업데이트가 진행되고 있습니다.
아래의 깃허브를 참고해보면, 버전이 계속해서 업데이트 되고 있습니다. 아직 다른 프레임워크에서 지원되는 layer 및 operation이 지원되지 않는 경우가 있습니다. 매 버전마다 지원을 늘리고 있습니다. 따라서 version별로 어디까지 지원이 되며, 사용자가 원하는 모델을 돌렸을 때, 어느 버전 이상 사용하면 될 것인지 알려주기 위해, 정리해보도록 하겠습니다.
https://github.com/NVIDIA/TensorRT
기본적으로 TensorRT docker의 경우, NGC docker를 사용하면 편리합니다.
Container Release Notes :: NVIDIA Deep Learning TensorRT Documentation
NGC docker release 정보를 토대로 원하는 TensorRT에 해당되는 이미지를 pull하면 됩니다.
Dockerfile을 직접 build해도 좋지만, 있는 것을 활용하고 requirements.txt를 구성하여 작업환경을 구성했습니다.
#!/bin/bash
container_name=$1
gpu=$2
port_num=$3
display_error(){
echo "Vaild container name, gpu(0,1,2,3)(num of gpu) and port number is required"
echo "Try 'tensorrt_v85_launch.sh --help' for more information"
}
display_usage(){
echo -e "\ndiscription : launch docker (TensorRT 8.512 Verion)"
echo -e "usage : tensorrt_v85_launch.sh [container_name] [gpu] [port_num]\n"
echo -e "optional arguments : \n"
echo -e "-h, --help \t show this help message"
echo -e "container_name \t determine docker container name"
echo -e "gpu \t select gpu device, e.g) 0,1,2"
echo -e "port_num \t select port number"
}
launch_docker(){
gpu_cmd=\""device=$gpu"\"
echo $gpu_cmd
docker run -d -it --gpus $gpu_cmd -p$port_num:8888 --ipc=host --name=$container_name \
-v /home/sjj995:/home/sjj995 -v /data1:/data1 -v /data2/user/sjj995:/data2/user/sjj995 \
-v /data3/user/sjj995:/data3/user/sjj995 nvcr.io/nvidia/tensorrt:22.10-py3\
"/bin/bash"
return
}
if [[ $1 == "--help" ]] || [[ $1 == "-h" ]];then
display_usage
elif [[ $# -ne 3 ]];then
display_error
else
launch_docker
fi
onnx==1.12.0;
onnxruntime==1.13.1
-f https://download.pytorch.org/whl/cu116/torch_stable.html
torch==1.13.0+cu116
torchaudio==0.13.0+cu116
torchvision==0.14.0+cu116
Pillow
numpy
pycuda<2022.1
pytest
--extra-index-url https://pypi.ngc.nvidia.com
onnx-graphsurgeon
pandas
colored
psutil
tensorflow
tensorflow-gpu
tensorflow-addons