Skip to content

Commit 8d50071

Browse files
committed
Add exec env build
1 parent d126b08 commit 8d50071

File tree

2 files changed

+63
-6
lines changed

2 files changed

+63
-6
lines changed

CMakeLists.txt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ option(TRITON_ENABLE_STATS "Include statistics collections in backend" ON)
4747
option(TRITON_ENABLE_NVTX "Include nvtx markers collection in backend." OFF)
4848
option(TRITON_PYTORCH_ENABLE_TORCHTRT "Enable TorchTRT support" OFF)
4949
option(TRITON_PYTORCH_ENABLE_TORCHVISION "Enable Torchvision support" ON)
50+
option(TRITON_PYTORCH_ENABLE_PYTHON_RUNTIME "Enable Python backend runtime support" ON)
5051

5152
set(TRITON_PYTORCH_DOCKER_IMAGE "" CACHE STRING "Docker image containing the PyTorch build required by backend.")
5253
set(TRITON_PYTORCH_INCLUDE_PATHS "" CACHE PATH "Paths to Torch includes")
@@ -504,12 +505,16 @@ install(
504505
${INSTALL_CONFIGDIR}
505506
)
506507

507-
install(
508-
FILES
509-
src/model.py
510-
DESTINATION
511-
${CMAKE_INSTALL_PREFIX}/backends/pytorch
512-
)
508+
if (${TRITON_PYTORCH_ENABLE_PYTHON_RUNTIME})
509+
install(CODE "execute_process(COMMAND bash -c ${CMAKE_CURRENT_SOURCE_DIR}/tools/gen_pb_exec_env.sh)")
510+
install(
511+
FILES
512+
src/model.py
513+
${CMAKE_CURRENT_BINARY_DIR}/pb_exec_env_model.py.tar.gz
514+
DESTINATION
515+
${CMAKE_INSTALL_PREFIX}/backends/pytorch
516+
)
517+
endif() # TRITON_PYTORCH_ENABLE_PYTHON_RUNTIME
513518

514519
include(CMakePackageConfigHelpers)
515520
configure_package_config_file(

tools/gen_pb_exec_env.sh

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#!/bin/bash
2+
# Copyright 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3+
#
4+
# Redistribution and use in source and binary forms, with or without
5+
# modification, are permitted provided that the following conditions
6+
# are met:
7+
# * Redistributions of source code must retain the above copyright
8+
# notice, this list of conditions and the following disclaimer.
9+
# * Redistributions in binary form must reproduce the above copyright
10+
# notice, this list of conditions and the following disclaimer in the
11+
# documentation and/or other materials provided with the distribution.
12+
# * Neither the name of NVIDIA CORPORATION nor the names of its
13+
# contributors may be used to endorse or promote products derived
14+
# from this software without specific prior written permission.
15+
#
16+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
17+
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19+
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20+
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21+
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23+
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
24+
# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25+
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26+
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27+
28+
# install conda
29+
rm -rf ./miniconda
30+
wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-Linux-x86_64.sh
31+
bash Miniconda3-py310_23.3.1-0-Linux-x86_64.sh -p ./miniconda -b
32+
eval "$(./miniconda/bin/conda shell.bash hook)"
33+
34+
# create conda environment
35+
conda create -n pt python=3.10 -y
36+
conda activate pt
37+
conda install -c conda-forge conda-pack -y
38+
39+
# pre install step
40+
export PYTHONNOUSERSITE=True
41+
conda install -c conda-forge libstdcxx-ng=12 -y
42+
43+
# install PyTorch
44+
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia -y
45+
46+
# pack environment
47+
rm -f pb_exec_env_model.py.tar.gz
48+
conda pack -o pb_exec_env_model.py.tar.gz
49+
50+
# deactivate conda
51+
conda deactivate
52+
conda deactivate

0 commit comments

Comments
 (0)