Files
Samurdhi Karunaratne d60461dc92 TensorRT 9.0 EA Release
Signed-off-by: Samurdhi Karunaratne <skarunaratne@nvidia.com>
2023-08-06 01:12:31 -07:00

67 lines
2.2 KiB
Markdown

# TensorRT Python Bindings
## Installation
### Set environment variables
Set `TRT_OSSPATH` and `TRT_LIBPATH` environment variables to point to your OSS clone
and TensorRT library location, respectively.
### Download pybind11
Create a directory for external sources and download pybind11 into it.
```bash
export EXT_PATH=~/external
mkdir -p $EXT_PATH && cd $EXT_PATH
git clone https://github.com/pybind/pybind11.git
```
### Download Python headers
#### Add Main Headers
1. Get the source code from the official [python sources](https://www.python.org/downloads/source/)
2. Copy the contents of the `Include/` directory into `$EXT_PATH/pythonX.Y/include/` directory.
Example: Python 3.10
```bash
wget https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz
tar -xvf Python-3.10.11.tgz
mkdir -p $EXT_PATH/python3.10/include
cp -r Python-3.10.11/Include/* $EXT_PATH/python3.10/include
```
#### Add PyConfig.h
1. Download the deb package for the desired platform from [here](https://packages.debian.org/search?searchon=contents&keywords=pyconfig.h&mode=path&suite=unstable&arch=any).
Typical plaforms include `x86_64` (`amd64`), `aarch64` (`arm64`), and `ppc64le` (`ppc64el`).
For older versions of Python, you may need to select a different suite.
2. Unpack the debian with `ar x <libpython...>.deb`
3. Unpack the contained `data.tar.xz` with `tar -xvf`
4. Find `pyconfig.h` in the `./usr/include/<platform>/pythonX.Y/` directory and copy it into `$EXT_PATH/pythonX.Y/include/`.
Example: Python 3.10
```bash
wget http://http.us.debian.org/debian/pool/main/p/python3.10/libpython3.10-dev_3.10.12-1_amd64.deb
ar x libpython3.10-dev*.deb
mkdir debian && tar -xf data.tar.xz -C debian
cp debian/usr/include/x86_64-linux-gnu/python3.10/pyconfig.h python3.10/include/
```
### Build Python bindings
Use `build.sh` to generate the installable wheels for the intended Python version and target architecture.
Example: for Python 3.10 `x86_64` wheel,
```bash
cd $TRT_OSSPATH/python
TENSORRT_MODULE=tensorrt PYTHON_MAJOR_VERSION=3 PYTHON_MINOR_VERSION=10 TARGET_ARCHITECTURE=x86_64 ./build.sh
```
### Install the python wheel
```bash
python3 -m pip install ./build/bindings_wheel/dist/tensorrt-*.whl
```