Open psyhtest opened 6 years ago
This is a bit tricky for a couple of reasons:
To configure TensorRT 3 to support Python 2, I followed the official installation guide.
$ cd /tmp
$ tar xvzf ~/Downloads/TensorRT-3.0.4.Ubuntu-16.04.3.x86_64.cuda-9.0.cudnn7.0.tar.gz
$ sudo mv /tmp/TensorRT-3.0.4 /usr/local
$ ck detect soft:lib.tensorrt --full_path=/usr/local/TensorRT-3.0.4/lib/libnvinfer.so
$ ck show env --tags=cuda,v9.0
Env UID: Target OS: Bits: Name: Version: Tags:
a9181e930c5b5917 linux-64 64 Nvidia CUDA Compiler 9.0.176 64bits,compiler,cuda,host-os-linux-64,lang-c-cuda,lang-cpp-cuda,target-os-linux-64,v9,v9.0,v9.0.176
$ ck virtual env --tags=cuda,v9.0
Warning: you are in a new shell with a pre-set CK environment. Enter "exit" to return to the original one!
$ sudo -H pip2 install \
--global-option=build_ext \
--global-option="-I$CK_ENV_COMPILER_CUDA_INCLUDE" \
--global-option="-L$CK_ENV_COMPILER_CUDA_LIB"
/usr/local/TensorRT-3.0.4/python/tensorrt-3.0.4-cp27-cp27mu-linux_x86_64.whl
$ sudo -H pip2 install \
/usr/local/TensorRT-3.0.4/uff/uff-0.2.0-py2.py3-none-any.whl
$ sudo cp /usr/local/lib/python2.7/dist-packages/tensorrt/examples/custom_layers/tensorrtplugins/setup.py{,~}
$ sudo vim /usr/local/lib/python2.7/dist-packages/tensorrt/examples/custom_layers/tensorrtplugins/setup.py
$ diff /usr/local/lib/python2.7/dist-packages/tensorrt/examples/custom_layers/tensorrtplugins/setup.py{~,}
67c67
< CUDA_DIR = os.environ.get("CUDA_ROOT_DIR", '/usr/local/cuda')
---
> CUDA_DIR = os.environ.get("CUDA_ROOT_DIR", '/usr/local/cuda-9.0.176')
69,70c69,70
< TENSORRT_INC_DIR = '/usr/include/x86_64-linux-gnu'
< TENSORRT_LIB_DIR = '/usr/lib/x86_64-linux-gnu'
---
> TENSORRT_INC_DIR = '/usr/local/TensorRT-3.0.4/include'
> TENSORRT_LIB_DIR = '/usr/local/TensorRT-3.0.4/lib'
$ cd /usr/local/TensorRT-3.0.4/samples/sampleMNIST && make
$ ck show env --tags=tensorrt,v3.0.4
Env UID: Target OS: Bits: Name: Version: Tags:
bcbfcd499b8fc4c8 linux-64 64 TensorRT engine 3.0.4 64bits,host-os-linux-64,inference,lib,target-os-linux-64,tensorrt,v3,v3.0,v3.0.4
$ ck show env --tags=cudnn
Env UID: Target OS: Bits: Name: Version: Tags:
6a072f48be44550c linux-64 64 cuDNN library 7.0.5 64bits,cuda,cudnn,dnn,host-os-linux-64,lib,target-os-linux-64,v7,v7.0,v7.0.5
$ ck virtual env --tags=tensorrt,v3.0.4
$ ck virtual env --tags=cudnn
$ /usr/local/TensorRT-3.0.4/bin/sample_mnist
---------------------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@*. .*@@@@@@@@@@@
@@@@@@@@@@*. +@@@@@@@@@@
@@@@@@@@@@. :#+ %@@@@@@@@@
@@@@@@@@@@.:@@@+ +@@@@@@@@@
@@@@@@@@@@.:@@@@: +@@@@@@@@@
@@@@@@@@@@=%@@@@: +@@@@@@@@@
@@@@@@@@@@@@@@@@# +@@@@@@@@@
@@@@@@@@@@@@@@@@* +@@@@@@@@@
@@@@@@@@@@@@@@@@: +@@@@@@@@@
@@@@@@@@@@@@@@@@: +@@@@@@@@@
@@@@@@@@@@@@@@@* .@@@@@@@@@@
@@@@@@@@@@%**%@. *@@@@@@@@@@
@@@@@@@@%+. .: .@@@@@@@@@@@
@@@@@@@@= .. :@@@@@@@@@@@
@@@@@@@@: *@@: :@@@@@@@@@@@
@@@@@@@% %@* *@@@@@@@@@@
@@@@@@@% ++ ++ .%@@@@@@@@@
@@@@@@@@- +@@- +@@@@@@@@@
@@@@@@@@= :*@@@# .%@@@@@@@@
@@@@@@@@@+*@@@@@%. %@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@
0:
1:
2: **********
3:
4:
5:
6:
7:
8:
9:
From the user perspective, it seems that the easiest way of installing TensorRT with Python support would be to download an archive from NVIDIA's website (registration is required) and then launch a special TensorRT package that would extract the archive and configure TensorRT depending on the selected Python version.
Just a note that I recently added flag "ck install package --reuse_deps" which try to reuse all selected deps in further sub-deps. I guess if we order correctly all deps, we can make sure that CUDA 9+, GCC 6+, Python 2.x are used ... But we need to check it further. In a longer future, it would be nice to have a proper API to customize/define such cases via Python...
TensorFlow 1.7 with CUDA optionally supports TensorRT, so it asks the following during installation:
We could probably automate this by a special package CK forcing the
y
answer and supplying the path to TensorRT.