Skip to content

Commit f130e0b

Browse files
committed
refactor(//py)!: Build system is now PEP517 compatible
BREAKING CHANGE: A ton of files have been moved in order to support PEP517 standards based builds. Users are now advised to use commands such as the following: Editable installs: python -m pip install --verbose --pre -e . [if necessary add --index-url to access nightly builds of pytorch] Wheel files: python -m pip wheel --verbose --pre . [if necessary add --index-url to access nightly builds of pytorch] --config-setting="--build-option=<options you would pass to setup.py>" -w dist Alternative build processes are also supported pypa/build: python -m build --wheel --skip-dependency-check --no-isolation > Skip dependency check means you need to install py/requirements.txt first due to issues with TensorRT's python package Signed-off-by: Naren Dasan <[email protected]> Signed-off-by: Naren Dasan <[email protected]> tools: adding a pyproject.toml linter Signed-off-by: Naren Dasan <[email protected]> Signed-off-by: Naren Dasan <[email protected]> chore: update CI for new build path Signed-off-by: Naren Dasan <[email protected]> Signed-off-by: Naren Dasan <[email protected]> Adding no deps flag refactor: Formally define package contents in setup.py Signed-off-by: Naren Dasan <[email protected]> Signed-off-by: Naren Dasan <[email protected]>
1 parent bac0c59 commit f130e0b

19 files changed

+515
-354
lines changed

.circleci/config.yml

Lines changed: 125 additions & 64 deletions
Large diffs are not rendered by default.

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,5 @@ bazel-tensorrt
6666
*.cache
6767
*cifar-10-batches-py*
6868
bazel-project
69-
build/
69+
build/
70+
wheelhouse/

.pre-commit-config.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ repos:
3030
args:
3131
- --warnings=all
3232
- id: buildifier-lint
33+
- repo: https://github.com/abravalheri/validate-pyproject
34+
rev: v0.13
35+
hooks:
36+
- id: validate-pyproject
3337
- repo: local
3438
hooks:
3539
- id: dont-commit-upstream

py/Dockerfile

Lines changed: 0 additions & 11 deletions
This file was deleted.

py/build_whl.sh

Lines changed: 0 additions & 44 deletions
This file was deleted.

py/ci/Dockerfile.ci

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM pytorch/manylinux-builder:cuda11.7
1+
FROM pytorch/manylinux-builder:cuda12.1
22
ARG trt_version
33

44
RUN echo -e "Installing with TensorRT ${trt_version}"

py/ci/build_manifest.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
py38
22
py39
33
py310
4+
py311
45
libtorchtrt_pre_cxx11_abi

py/ci/build_whl.sh

Lines changed: 49 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -8,84 +8,87 @@ export PROJECT_DIR=/workspace/project
88

99
cp -r $CUDA_HOME /usr/local/cuda
1010

11-
py37() {
12-
cd /workspace/project/py
13-
PY_BUILD_CODE=cp37-cp37m
14-
PY_VERSION=3.7
15-
PY_NAME=python${PY_VERSION}
16-
PY_DIR=/opt/python/${PY_BUILD_CODE}
17-
PY_PKG_DIR=${PY_DIR}/lib/${PY_NAME}/site-packages/
18-
${PY_DIR}/bin/python -m pip install --upgrade pip
19-
${PY_DIR}/bin/python -m pip install -r requirements.txt
20-
${PY_DIR}/bin/python -m pip install setuptools wheel auditwheel
21-
${PY_DIR}/bin/python setup.py bdist_wheel --release --ci
22-
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PY_PKG_DIR}/torch/lib:${PY_PKG_DIR}/tensorrt/:${CUDA_HOME}/lib64:${CUDA_HOME}/lib64/stubs ${PY_DIR}/bin/python -m auditwheel repair $(cat ${PROJECT_DIR}/py/ci/soname_excludes.params) --plat manylinux_2_17_x86_64 dist/torch_tensorrt-*-${PY_BUILD_CODE}-linux_x86_64.whl
11+
build_wheel() {
12+
$1/bin/python -m pip install --upgrade pip
13+
$1/bin/python -m pip wheel . --config-setting="--build-option=--release" --config-setting="--build-option=--ci" -w dist
14+
}
15+
16+
patch_wheel() {
17+
$2/bin/python -m pip install auditwheel
18+
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$1/torch/lib:$1/tensorrt/:${CUDA_HOME}/lib64:${CUDA_HOME}/lib64/stubs $2/bin/python -m auditwheel repair $(cat ${PROJECT_DIR}/py/ci/soname_excludes.params) --plat manylinux_2_34_x86_64 dist/torch_tensorrt-*-$3-linux_x86_64.whl
2319
}
2420

2521
py38() {
26-
cd /workspace/project/py
22+
cd /workspace/project
2723
PY_BUILD_CODE=cp38-cp38
2824
PY_VERSION=3.8
2925
PY_NAME=python${PY_VERSION}
3026
PY_DIR=/opt/python/${PY_BUILD_CODE}
3127
PY_PKG_DIR=${PY_DIR}/lib/${PY_NAME}/site-packages/
32-
${PY_DIR}/bin/python -m pip install --upgrade pip
33-
${PY_DIR}/bin/python -m pip install -r requirements.txt
34-
${PY_DIR}/bin/python -m pip install setuptools wheel auditwheel
35-
${PY_DIR}/bin/python setup.py bdist_wheel --release --ci
36-
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PY_PKG_DIR}/torch/lib:${PY_PKG_DIR}/tensorrt/:${CUDA_HOME}/lib64:${CUDA_HOME}/lib64/stubs ${PY_DIR}/bin/python -m auditwheel repair $(cat ${PROJECT_DIR}/py/ci/soname_excludes.params) --plat manylinux_2_17_x86_64 dist/torch_tensorrt-*-${PY_BUILD_CODE}-linux_x86_64.whl
28+
build_wheel ${PY_DIR}
29+
patch_wheel ${PY_PKG_DIR} ${PY_DIR} ${PY_BUILD_CODE}
3730
}
3831

3932
py39() {
40-
cd /workspace/project/py
33+
cd /workspace/project
4134
PY_BUILD_CODE=cp39-cp39
4235
PY_VERSION=3.9
4336
PY_NAME=python${PY_VERSION}
4437
PY_DIR=/opt/python/${PY_BUILD_CODE}
4538
PY_PKG_DIR=${PY_DIR}/lib/${PY_NAME}/site-packages/
46-
${PY_DIR}/bin/python -m pip install --upgrade pip
47-
${PY_DIR}/bin/python -m pip install -r requirements.txt
48-
${PY_DIR}/bin/python -m pip install setuptools wheel auditwheel
49-
${PY_DIR}/bin/python setup.py bdist_wheel --release --ci
50-
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PY_PKG_DIR}/torch/lib:${PY_PKG_DIR}/tensorrt/:${CUDA_HOME}/lib64:${CUDA_HOME}/lib64/stubs ${PY_DIR}/bin/python -m auditwheel repair $(cat ${PROJECT_DIR}/py/ci/soname_excludes.params) --plat manylinux_2_17_x86_64 dist/torch_tensorrt-*-${PY_BUILD_CODE}-linux_x86_64.whl
39+
build_wheel ${PY_DIR}
40+
patch_wheel ${PY_PKG_DIR} ${PY_DIR} ${PY_BUILD_CODE}
5141
}
5242

5343
py310() {
54-
cd /workspace/project/py
44+
cd /workspace/project
5545
PY_BUILD_CODE=cp310-cp310
5646
PY_VERSION=3.10
5747
PY_NAME=python${PY_VERSION}
5848
PY_DIR=/opt/python/${PY_BUILD_CODE}
5949
PY_PKG_DIR=${PY_DIR}/lib/${PY_NAME}/site-packages/
60-
${PY_DIR}/bin/python -m pip install --upgrade pip
61-
${PY_DIR}/bin/python -m pip install -r requirements.txt
62-
${PY_DIR}/bin/python -m pip install setuptools wheel auditwheel
63-
${PY_DIR}/bin/python setup.py bdist_wheel --release --ci
64-
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PY_PKG_DIR}/torch/lib:${PY_PKG_DIR}/tensorrt/:${CUDA_HOME}/lib64:${CUDA_HOME}/lib64/stubs ${PY_DIR}/bin/python -m auditwheel repair $(cat ${PROJECT_DIR}/py/ci/soname_excludes.params) --plat manylinux_2_17_x86_64 dist/torch_tensorrt-*-${PY_BUILD_CODE}-linux_x86_64.whl
50+
build_wheel ${PY_DIR}
51+
patch_wheel ${PY_PKG_DIR} ${PY_DIR} ${PY_BUILD_CODE}
6552
}
6653

67-
#build_py311() {
68-
# /opt/python/cp311-cp311/bin/python -m pip install -r requirements.txt
69-
# /opt/python/cp311-cp311/bin/python setup.py bdist_wheel --release --ci
70-
# #auditwheel repair --plat manylinux2014_x86_64
71-
#}
54+
py311() {
55+
cd /workspace/project
56+
PY_BUILD_CODE=cp311-cp311
57+
PY_VERSION=3.11
58+
PY_NAME=python${PY_VERSION}
59+
PY_DIR=/opt/python/${PY_BUILD_CODE}
60+
PY_PKG_DIR=${PY_DIR}/lib/${PY_NAME}/site-packages/
61+
build_wheel ${PY_DIR}
62+
patch_wheel ${PY_PKG_DIR} ${PY_DIR} ${PY_BUILD_CODE}
63+
}
64+
65+
py312() {
66+
cd /workspace/project
67+
PY_BUILD_CODE=cp312-cp312
68+
PY_VERSION=3.12
69+
PY_NAME=python${PY_VERSION}
70+
PY_DIR=/opt/python/${PY_BUILD_CODE}
71+
PY_PKG_DIR=${PY_DIR}/lib/${PY_NAME}/site-packages/
72+
build_wheel ${PY_DIR}
73+
patch_wheel ${PY_PKG_DIR} ${PY_DIR} ${PY_BUILD_CODE}
74+
}
7275

7376
libtorchtrt() {
74-
cd /workspace/project/py
77+
cd /workspace/project
7578
mkdir -p /workspace/project/py/wheelhouse
7679
PY_BUILD_CODE=cp310-cp310
7780
PY_VERSION=3.10
7881
PY_NAME=python${PY_VERSION}
7982
PY_DIR=/opt/python/${PY_BUILD_CODE}
8083
PY_PKG_DIR=${PY_DIR}/lib/${PY_NAME}/site-packages/
8184
${PY_DIR}/bin/python -m pip install --upgrade pip
82-
${PY_DIR}/bin/python -m pip install -r requirements.txt
85+
${PY_DIR}/bin/python -m pip install -r py/requirements.txt
8386
${PY_DIR}/bin/python -m pip install setuptools wheel auditwheel
8487
bazel build //:libtorchtrt --platforms //toolchains:ci_rhel_x86_64_linux -c opt --noshow_progress
85-
CUDA_VERSION=$(cd ${PROJECT_DIR}/py && ${PY_DIR}/bin/python3 -c "from versions import __cuda_version__;print(__cuda_version__)")
86-
TORCHTRT_VERSION=$(cd ${PROJECT_DIR}/py && ${PY_DIR}/bin/python3 -c "from versions import __version__;print(__version__)")
87-
TRT_VERSION=$(cd ${PROJECT_DIR}/py && ${PY_DIR}/bin/python3 -c "from versions import __tensorrt_version__;print(__tensorrt_version__)")
88-
CUDNN_VERSION=$(cd ${PROJECT_DIR}/py && ${PY_DIR}/bin/python3 -c "from versions import __cudnn_version__;print(__cudnn_version__)")
88+
CUDA_VERSION=$(cd ${PROJECT_DIR} && ${PY_DIR}/bin/python3 -c "import versions; versions.cuda_version()")
89+
TORCHTRT_VERSION=$(cd ${PROJECT_DIR} && ${PY_DIR}/bin/python3 -c "import versions; versions.torch_tensorrt_version()")
90+
TRT_VERSION=$(cd ${PROJECT_DIR} && ${PY_DIR}/bin/python3 -c "import versions; versions.tensorrt_version()")
91+
CUDNN_VERSION=$(cd ${PROJECT_DIR} && ${PY_DIR}/bin/python3 -c "import versions; versions.cudnn_version()")
8992
TORCH_VERSION=$(${PY_DIR}/bin/python -c "from torch import __version__;print(__version__.split('+')[0])")
9093
cp ${PROJECT_DIR}/bazel-bin/libtorchtrt.tar.gz ${PROJECT_DIR}/py/wheelhouse/libtorchtrt-${TORCHTRT_VERSION}-cudnn${CUDNN_VERSION}-tensorrt${TRT_VERSION}-cuda${CUDA_VERSION}-libtorch${TORCH_VERSION}-x86_64-linux.tar.gz
9194
}
@@ -99,13 +102,13 @@ libtorchtrt_pre_cxx11_abi() {
99102
PY_DIR=/opt/python/${PY_BUILD_CODE}
100103
PY_PKG_DIR=${PY_DIR}/lib/${PY_NAME}/site-packages/
101104
${PY_DIR}/bin/python -m pip install --upgrade pip
102-
${PY_DIR}/bin/python -m pip install -r requirements.txt
105+
${PY_DIR}/bin/python -m pip install -r ${PROJECT_DIR}/py/requirements.txt
103106
${PY_DIR}/bin/python -m pip install setuptools wheel auditwheel
104107
bazel build //:libtorchtrt --config pre_cxx11_abi --platforms //toolchains:ci_rhel_x86_64_linux -c opt --noshow_progress
105-
CUDA_VERSION=$(cd ${PROJECT_DIR}/py && ${PY_DIR}/bin/python3 -c "from versions import __cuda_version__;print(__cuda_version__)")
106-
TORCHTRT_VERSION=$(cd ${PROJECT_DIR}/py && ${PY_DIR}/bin/python3 -c "from versions import __version__;print(__version__)")
107-
TRT_VERSION=$(cd ${PROJECT_DIR}/py && ${PY_DIR}/bin/python3 -c "from versions import __tensorrt_version__;print(__tensorrt_version__)")
108-
CUDNN_VERSION=$(cd ${PROJECT_DIR}/py && ${PY_DIR}/bin/python3 -c "from versions import __cudnn_version__;print(__cudnn_version__)")
108+
CUDA_VERSION=$(cd ${PROJECT_DIR} && ${PY_DIR}/bin/python3 -c "import versions; versions.cuda_version()")
109+
TORCHTRT_VERSION=$(cd ${PROJECT_DIR} && ${PY_DIR}/bin/python3 -c "import versions; versions.torch_tensorrt_version()")
110+
TRT_VERSION=$(cd ${PROJECT_DIR} && ${PY_DIR}/bin/python3 -c "import versions; versions.tensorrt_version()")
111+
CUDNN_VERSION=$(cd ${PROJECT_DIR} && ${PY_DIR}/bin/python3 -c "import versions; versions.cudnn_version()")
109112
TORCH_VERSION=$(${PY_DIR}/bin/python -c "from torch import __version__;print(__version__.split('+')[0])")
110113
cp ${PROJECT_DIR}/bazel-bin/libtorchtrt.tar.gz ${PROJECT_DIR}/py/wheelhouse/libtorchtrt-${TORCHTRT_VERSION}-pre-cxx11-abi-cudnn${CUDNN_VERSION}-tensorrt${TRT_VERSION}-cuda${CUDA_VERSION}-libtorch${TORCH_VERSION}-x86_64-linux.tar.gz
111114
}

py/ci/soname_excludes.params

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,9 @@
3131
--exclude libcublasLt.so.11
3232
--exclude libnvinfer.so.8
3333
--exclude libcudnn.so.8
34+
--exclude libcublas.so.12
35+
--exclude libcublasLt.so.12
36+
--exclude libcublas.so.12.1.3.1
37+
--exclude libcublasLt.so.12.1.3.1
38+
--exclude libcudart.so.11.8.89
39+
--exclude libcudart.so.11

py/requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ torch==2.1.0.dev20230703+cu121
66
torchvision==0.16.0.dev20230703+cu121
77
--extra-index-url https://pypi.ngc.nvidia.com
88
tensorrt==8.6.1
9+
pyyaml

0 commit comments

Comments
 (0)