Build
hardware requirement
为了充分展示不同扩缩容方案的特点,需要有
- RDMA IB网卡
- NVLink
仓库目录下提供了Dockerfile容器环境,避免手动配置环境的复杂性
clone项目
git clone git@github.com:blitz-serving/blitz-remake.git
cd blitz-remake
构建容器
docker build -t blitz-docker .
# 运行容器时指定使用的IB网卡
# 指定容器使用全部GPU
# 建议将刚刚clone的blitz-remake仓库通过volume挂载到容器中
docker run -itd \
--privileged \
--gpus all \
--ipc host \
--network host \
--volume /data2:/nvme \
--device /dev/infiniband/rdma_cm \
--device /dev/infiniband/uverbs0 \
--workdir /root \
--name blitz-docker \
blitz-docker /bin/bash
安装rust
## 安装rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "/root/.cargo/env"
编译构建
对于不同架构的GPU,需要更改cmake编译选项,以4090、Hopper架构GPU各自的cmake命令为例
# 4090 使用CUDA_ARCHITECTURES=80,TORCH_CUDA_ARCH_LIST='8.0'
cmake -Bbuild/release \
-DTorch_DIR=/usr/local/lib/python3.10/dist-packages/torch \
-DBUILD_MODE=debug \
-DCMAKE_CUDA_ARCHITECTURES=80 \
-DFLASHINFER_CUDA_ARCHITECTURES=80 \
-DTORCH_CUDA_ARCH_LIST='8.0' \
-DFLASHINFER_ENABLE_FP8=false \
-DFLASHINFER_GEN_HEAD_DIMS=128 \
-DFLASHINFER_GEN_MASK_MODES=1 \
-DFLASHINFER_GEN_POS_ENCODING_MODES=1
# Hopper架构下修改对应的ARCHITECTURES
cmake -Bbuild/release \
-DTorch_DIR=/usr/local/lib/python3.10/dist-packages/torch \
-DBUILD_MODE=debug \
-DCMAKE_CUDA_ARCHITECTURES=90 \
-DFLASHINFER_CUDA_ARCHITECTURES=90 \
-DTORCH_CUDA_ARCH_LIST='9.0' \
-DFLASHINFER_ENABLE_FP8=false \
-DFLASHINFER_GEN_HEAD_DIMS=128 \
-DFLASHINFER_GEN_MASK_MODES=1 \
-DFLASHINFER_GEN_POS_ENCODING_MODES=1
# 若提示CMAKE_CUDA_COMPILER并未找到,则需要提供nvcc路径
# -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc \
# 编译
cmake --build build/release -j 64
mpi
如果构建时报错无法找到mpirun,使用如下命令
export OPAL_PREFIX=/opt/hpcx/ompi
export PATH=/opt/hpcx/ompi/bin:$PATH
export LD_LIBRARY_PATH=/opt/hpcx/ompi/lib:\
/opt/hpcx/ucx/lib:/opt/hpcx/ucc/lib:\
/opt/hpcx/sharp/lib:/opt/hpcx/hcoll/lib:$LD_LIBRARY_PATH
测试
# 通过test_model_llama测试CUDA能够正常使用
./build/bin/test_model_llama
usage
启动server和router之后,由client向router发送推理请求,接口兼容openai
pip install toml
python ./scripts/batchv2/main.py --template ./config/e2e...