Skip to content

Instantly share code, notes, and snippets.

@jlewi
Created July 1, 2024 16:49
Show Gist options
  • Save jlewi/86ab34b7adb9d22dd267fa656d967695 to your computer and use it in GitHub Desktop.
Save jlewi/86ab34b7adb9d22dd267fa656d967695 to your computer and use it in GitHub Desktop.
cmake_build
#!/usr/bin/env bash
#
# Build script for Triton Inference Server
#
# Exit script immediately if any command fails
set -e
########
# Triton core library and tritonserver executable
#
mkdir -p /tmp/tritonbuild/tritonserver/build
cd /tmp/tritonbuild/tritonserver/build
cmake "-DTRT_VERSION=${TRT_VERSION}" "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET}" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX:PATH=/tmp/tritonbuild/tritonserver/install" "-DTRITON_VERSION:STRING=2.46.0" "-DTRITON_REPO_ORGANIZATION:STRING=https://github.com/triton-inference-server" "-DTRITON_COMMON_REPO_TAG:STRING=r24.05" "-DTRITON_CORE_REPO_TAG:STRING=r24.05" "-DTRITON_BACKEND_REPO_TAG:STRING=r24.05" "-DTRITON_THIRD_PARTY_REPO_TAG:STRING=r24.05" "-DTRITON_ENABLE_LOGGING:BOOL=ON" "-DTRITON_ENABLE_STATS:BOOL=ON" "-DTRITON_ENABLE_METRICS:BOOL=ON" "-DTRITON_ENABLE_METRICS_GPU:BOOL=ON" "-DTRITON_ENABLE_METRICS_CPU:BOOL=ON" "-DTRITON_ENABLE_TRACING:BOOL=ON" "-DTRITON_ENABLE_NVTX:BOOL=OFF" "-DTRITON_ENABLE_GPU:BOOL=ON" "-DTRITON_MIN_COMPUTE_CAPABILITY=6.0" "-DTRITON_ENABLE_MALI_GPU:BOOL=OFF" "-DTRITON_ENABLE_GRPC:BOOL=ON" "-DTRITON_ENABLE_HTTP:BOOL=ON" "-DTRITON_ENABLE_SAGEMAKER:BOOL=OFF" "-DTRITON_ENABLE_VERTEX_AI:BOOL=OFF" "-DTRITON_ENABLE_GCS:BOOL=ON" "-DTRITON_ENABLE_S3:BOOL=ON" "-DTRITON_ENABLE_AZURE_STORAGE:BOOL=OFF" "-DTRITON_ENABLE_ENSEMBLE:BOOL=ON" "-DTRITON_ENABLE_TENSORRT:BOOL=OFF" /workspace
cmake --build . --config Release -j20 -t install
mkdir -p /tmp/tritonbuild/install/bin
cp /tmp/tritonbuild/tritonserver/install/bin/tritonserver /tmp/tritonbuild/install/bin
mkdir -p /tmp/tritonbuild/install/lib
cp /tmp/tritonbuild/tritonserver/install/lib/libtritonserver.so /tmp/tritonbuild/install/lib
mkdir -p /tmp/tritonbuild/install/python
cp /tmp/tritonbuild/tritonserver/install/python/tritonserver*.whl /tmp/tritonbuild/install/python
mkdir -p /tmp/tritonbuild/install/include/triton
cp -r /tmp/tritonbuild/tritonserver/install/include/triton/core /tmp/tritonbuild/install/include/triton/core
cp /workspace/LICENSE /tmp/tritonbuild/install
cp /workspace/TRITON_VERSION /tmp/tritonbuild/install
mkdir -p /tmp/tritonbuild/install/third-party-src
cd /tmp/tritonbuild/tritonserver/build
tar zcf /tmp/tritonbuild/install/third-party-src/src.tar.gz third-party-src
cp /workspace/docker/README.third-party-src /tmp/tritonbuild/install/third-party-src/README
#
# end Triton core library and tritonserver executable
########
########
# 'tensorrtllm' backend
# Delete this section to remove backend from build
#
mkdir -p /tmp/tritonbuild
cd /tmp/tritonbuild
rm -fr tensorrtllm
if [[ ! -e tensorrtllm ]]; then
git clone --recursive --single-branch --depth=1 -b rel https://github.com/triton-inference-server/tensorrtllm_backend.git tensorrtllm;
fi
export TRT_ROOT=/usr/local/tensorrt
export ARCH=$(uname -m)
export LD_LIBRARY_PATH="/usr/local/cuda/compat/lib.real:${LD_LIBRARY_PATH}"
mkdir -p /tmp/tritonbuild/tensorrtllm/build
cd /tmp/tritonbuild/tensorrtllm/build
apt-get update && apt-get install -y libcudnn8-dev && ldconfig
python3 ../tensorrt_llm/scripts/build_wheel.py --trt_root /usr/local/tensorrt
cmake "-DTRT_VERSION=${TRT_VERSION}" "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET}" "-DTRT_LIB_DIR=${TRT_ROOT}/targets/${ARCH}-linux-gnu/lib" "-DTRT_INCLUDE_DIR=${TRT_ROOT}/include" "-DUSE_CXX11_ABI:BOOL=ON" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX:PATH=/tmp/tritonbuild/tensorrtllm/install" "-DTRITON_REPO_ORGANIZATION:STRING=https://github.com/triton-inference-server" "-DTRITON_COMMON_REPO_TAG:STRING=r24.05" "-DTRITON_CORE_REPO_TAG:STRING=r24.05" "-DTRITON_BACKEND_REPO_TAG:STRING=r24.05" "-DTRITON_ENABLE_GPU:BOOL=ON" "-DTRITON_ENABLE_MALI_GPU:BOOL=OFF" "-DTRITON_ENABLE_STATS:BOOL=ON" "-DTRITON_ENABLE_METRICS:BOOL=ON" "-DTRITON_ENABLE_MEMORY_TRACKER:BOOL=ON" -S ../inflight_batcher_llm -B .
cmake --build . --config Release -j20 -t install
mkdir -p /tmp/tritonbuild/tensorrtllm/install/backends/tensorrtllm
cp /tmp/tritonbuild/tensorrtllm/tensorrt_llm/build/tensorrt_llm-*.whl /tmp/tritonbuild/tensorrtllm/install/backends/tensorrtllm
cp /tmp/tritonbuild/tensorrtllm/build/libtriton_tensorrtllm*.so /tmp/tritonbuild/tensorrtllm/install/backends/tensorrtllm
cp /tmp/tritonbuild/tensorrtllm/build/trtllmExecutorWorker /tmp/tritonbuild/tensorrtllm/install/backends/tensorrtllm
mkdir -p /tmp/tritonbuild/install/backends
rm -fr /tmp/tritonbuild/install/backends/tensorrtllm
cp -r /tmp/tritonbuild/tensorrtllm/install/backends/tensorrtllm /tmp/tritonbuild/install/backends
#
# end 'tensorrtllm' backend
########
########
# 'python' backend
# Delete this section to remove backend from build
#
mkdir -p /tmp/tritonbuild
cd /tmp/tritonbuild
rm -fr python
if [[ ! -e python ]]; then
git clone --recursive --single-branch --depth=1 -b r24.04 https://github.com/triton-inference-server/python_backend.git python;
fi
mkdir -p /tmp/tritonbuild/python/build
cd /tmp/tritonbuild/python/build
cmake "-DTRT_VERSION=${TRT_VERSION}" "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" "-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET}" "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_INSTALL_PREFIX:PATH=/tmp/tritonbuild/python/install" "-DTRITON_REPO_ORGANIZATION:STRING=https://github.com/triton-inference-server" "-DTRITON_COMMON_REPO_TAG:STRING=r24.05" "-DTRITON_CORE_REPO_TAG:STRING=r24.05" "-DTRITON_BACKEND_REPO_TAG:STRING=r24.05" "-DTRITON_ENABLE_GPU:BOOL=ON" "-DTRITON_ENABLE_MALI_GPU:BOOL=OFF" "-DTRITON_ENABLE_STATS:BOOL=ON" "-DTRITON_ENABLE_METRICS:BOOL=ON" "-DTRITON_ENABLE_MEMORY_TRACKER:BOOL=ON" ..
cmake --build . --config Release -j20 -t install
mkdir -p /tmp/tritonbuild/install/backends
rm -fr /tmp/tritonbuild/install/backends/python
cp -r /tmp/tritonbuild/python/install/backends/python /tmp/tritonbuild/install/backends
#
# end 'python' backend
########
########
# Collect Triton CI artifacts
#
mkdir -p /tmp/tritonbuild/ci
cp -r /workspace/qa /tmp/tritonbuild/ci
cp -r /workspace/deploy /tmp/tritonbuild/ci
mkdir -p /tmp/tritonbuild/ci/docs
cp -r /workspace/docs/examples /tmp/tritonbuild/ci/docs
mkdir -p /tmp/tritonbuild/ci/src/test
cp -r /workspace/src/test/models /tmp/tritonbuild/ci/src/test
cp -r /tmp/tritonbuild/tritonserver/install/bin /tmp/tritonbuild/ci
mkdir -p /tmp/tritonbuild/ci/lib
cp /tmp/tritonbuild/tritonserver/install/lib/libtritonrepoagent_relocation.so /tmp/tritonbuild/ci/lib
cp -r /tmp/tritonbuild/tritonserver/install/python /tmp/tritonbuild/ci
mkdir -p /tmp/tritonbuild/ci/backends
if [[ -e /tmp/tritonbuild/identity/install/backends/identity ]]; then
cp -r /tmp/tritonbuild/identity/install/backends/identity /tmp/tritonbuild/ci/backends
fi
if [[ -e /tmp/tritonbuild/repeat/install/backends/repeat ]]; then
cp -r /tmp/tritonbuild/repeat/install/backends/repeat /tmp/tritonbuild/ci/backends
fi
if [[ -e /tmp/tritonbuild/square/install/backends/square ]]; then
cp -r /tmp/tritonbuild/square/install/backends/square /tmp/tritonbuild/ci/backends
fi
mkdir -p /tmp/tritonbuild/ci/tritonbuild/tritonserver/backends
if [[ -e /tmp/tritonbuild/tritonserver/install/backends/query ]]; then
cp -r /tmp/tritonbuild/tritonserver/install/backends/query /tmp/tritonbuild/ci/tritonbuild/tritonserver/backends
fi
if [[ -e /tmp/tritonbuild/tritonserver/install/backends/implicit_state ]]; then
cp -r /tmp/tritonbuild/tritonserver/install/backends/implicit_state /tmp/tritonbuild/ci/tritonbuild/tritonserver/backends
fi
if [[ -e /tmp/tritonbuild/tritonserver/install/backends/sequence ]]; then
cp -r /tmp/tritonbuild/tritonserver/install/backends/sequence /tmp/tritonbuild/ci/tritonbuild/tritonserver/backends
fi
if [[ -e /tmp/tritonbuild/tritonserver/install/backends/dyna_sequence ]]; then
cp -r /tmp/tritonbuild/tritonserver/install/backends/dyna_sequence /tmp/tritonbuild/ci/tritonbuild/tritonserver/backends
fi
if [[ -e /tmp/tritonbuild/tritonserver/install/backends/distributed_addsub ]]; then
cp -r /tmp/tritonbuild/tritonserver/install/backends/distributed_addsub /tmp/tritonbuild/ci/tritonbuild/tritonserver/backends
fi
if [[ -e /tmp/tritonbuild/tritonserver/install/backends/iterative_sequence ]]; then
cp -r /tmp/tritonbuild/tritonserver/install/backends/iterative_sequence /tmp/tritonbuild/ci/tritonbuild/tritonserver/backends
fi
mkdir -p /tmp/tritonbuild/ci/tritonbuild
rm -fr /tmp/tritonbuild/python/build
rm -fr /tmp/tritonbuild/python/install
cp -r /tmp/tritonbuild/python /tmp/tritonbuild/ci/tritonbuild
#
# end Triton CI artifacts
########
chmod -R a+rw /tmp/tritonbuild/install
chmod -R a+rw /tmp/tritonbuild/ci
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment