File size: 2,475 Bytes
4a28d4d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/bash -ex

# Skip system setup if virtual env already exists (e.g., in dev image)
if [ ! -f "/opt/py3/bin/python" ]; then
    # install system packages
    export DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC
    sed -i 's|http://archive.ubuntu.com|http://azure.archive.ubuntu.com|g' /etc/apt/sources.list
    apt-get update -y
    apt-get install -y --no-install-recommends \
        tzdata wget curl ssh sudo git-core vim libibverbs1 ibverbs-providers ibverbs-utils librdmacm1 libibverbs-dev rdma-core libmlx5-1

    if [[ ${PYTHON_VERSION} != "3.10" ]]; then
        apt-get install -y --no-install-recommends software-properties-common
        add-apt-repository -y ppa:deadsnakes/ppa
        apt-get update -y
    fi

    # install python, create virtual env
    apt-get install -y --no-install-recommends \
        python${PYTHON_VERSION} python${PYTHON_VERSION}-dev python${PYTHON_VERSION}-venv

    pushd /opt >/dev/null
        python${PYTHON_VERSION} -m venv py3
    popd >/dev/null

    # install CUDA build tools
    if [[ "${CUDA_VERSION_SHORT}" = "cu126" ]]; then
        apt-get install -y --no-install-recommends cuda-minimal-build-12-6 numactl dkms
    elif [[ "${CUDA_VERSION_SHORT}" = "cu128" ]]; then
        apt-get install -y --no-install-recommends cuda-minimal-build-12-8 numactl dkms
    elif [[ "${CUDA_VERSION_SHORT}" = "cu130" ]]; then
        apt-get install -y --no-install-recommends cuda-minimal-build-13-0 numactl dkms
    fi

    apt-get clean -y
    rm -rf /var/lib/apt/lists/*
fi

# install GDRCopy debs
if [ "$(ls -A /wheels/*.deb 2>/dev/null)" ]; then
    dpkg -i /wheels/*.deb
fi

# install python packages
export PATH=/opt/py3/bin:$PATH

pip install -U pip wheel setuptools

if [[ "${CUDA_VERSION_SHORT}" = "cu130" ]]; then
    pip install nvidia-nvshmem-cu13==3.4.5
else
    pip install nvidia-nvshmem-cu12==3.4.5
fi

pip install /wheels/*.whl
pip install dlblas==0.0.7 dlslime==0.0.2.post1

pip install ninja einops packaging

# install requirements/serve.txt dependencies such as timm
if [ -f /tmp/requirements/serve.txt ]; then
    pip install -r /tmp/requirements/serve.txt
fi

if [[ "${CUDA_VERSION_SHORT}" = "cu128" ]]; then
    # As described in https://github.com/InternLM/lmdeploy/pull/4313,
    # window registration may cause memory leaks in NCCL 2.27, NCCL 2.28+ resolves the issue,
    # but turbomind engine will use nccl GIN for EP in future, which is brought in since 2.29
    pip install "nvidia-nccl-cu12>2.29"
fi