|
1 | | -ARG BASE_IMAGE=lmsysorg/sglang-rocm:v0.5.14-rocm720-mi35x-20260705@sha256:b435b508b5aa696abb25c909341ce73e41574c4271cf716bed72418dcea86b78 |
| 1 | +ARG BASE_IMAGE=lmsysorg/sglang:v0.5.20-rocm10-mi35x@sha256:e20849665c105d389ef91d23c0dc73931aaa6f02056dd10e7b43e4f16c79df69 |
2 | 2 | FROM ${BASE_IMAGE} |
3 | 3 |
|
4 | 4 | LABEL org.opencontainers.image.title="AgentKernelArena ROCm GPU ASan tool runtime" \ |
5 | | - org.opencontainers.image.base.digest="sha256:b435b508b5aa696abb25c909341ce73e41574c4271cf716bed72418dcea86b78" \ |
6 | | - org.opencontainers.image.version="rocm-7.2.0-asan" |
| 5 | + org.opencontainers.image.base.digest="sha256:e20849665c105d389ef91d23c0dc73931aaa6f02056dd10e7b43e4f16c79df69" \ |
| 6 | + org.opencontainers.image.version="rocm-10.0.0-asan" |
7 | 7 |
|
8 | 8 | COPY docker/eval-tools/gpu-asan/packages.sha256 /tmp/packages.sha256 |
9 | 9 |
|
10 | | -RUN mkdir -p /tmp/gpu-asan-debs \ |
| 10 | +# Unpack checksum-locked ROCm 10 ASan packages into their own versioned prefix. |
| 11 | +# Installing their metapackage would also mutate the base image's SDK selection. |
| 12 | +RUN mkdir -p /tmp/gpu-asan-debs /tmp/gpu-asan-root \ |
11 | 13 | && cd /tmp/gpu-asan-debs \ |
12 | | - && apt-get update \ |
13 | | - && apt-get download \ |
14 | | - rocm-core-asan=7.2.0.70200-43~22.04 \ |
15 | | - comgr-asan=3.0.0.70200-43~22.04 \ |
16 | | - hsa-rocr-asan=1.18.0.70200-43~22.04 \ |
17 | | - hip-runtime-amd-asan=7.2.26015.70200-43~22.04 \ |
| 14 | + && while read -r checksum package; do \ |
| 15 | + curl --fail --location --retry 3 -o "$package" \ |
| 16 | + "https://stable.repo.amd.com/rocm/core/packages-asan/ubuntu2404/pool/main/$package"; \ |
| 17 | + done < /tmp/packages.sha256 \ |
18 | 18 | && sha256sum --check /tmp/packages.sha256 \ |
19 | | - && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ./*.deb \ |
20 | | - && rm -rf /tmp/gpu-asan-debs /tmp/packages.sha256 /var/lib/apt/lists/* |
| 19 | + && for package in *.deb; do dpkg-deb --extract "$package" /tmp/gpu-asan-root; done \ |
| 20 | + && mv /tmp/gpu-asan-root/opt/rocm/core-asan-10.0 /opt/rocm-asan-10.0 \ |
| 21 | + && test -L /opt/rocm \ |
| 22 | + && test -x /opt/rocm/bin/hipcc \ |
| 23 | + && rm -rf /tmp/gpu-asan-debs /tmp/gpu-asan-root /tmp/packages.sha256 |
| 24 | + |
| 25 | +# PyTorch preloads these SDK libraries by absolute path. Point those paths at |
| 26 | +# the instrumented copies too; LD_LIBRARY_PATH alone would load two LLVMs. |
| 27 | +RUN /opt/venv/bin/python - <<'PY' |
| 28 | +from pathlib import Path |
| 29 | +import rocm_sdk |
| 30 | + |
| 31 | +runtime = Path('/opt/rocm-asan-10.0/lib') |
| 32 | +for name in ('amd_comgr', 'amdhip64'): |
| 33 | + target = runtime / f'lib{name}.so' |
| 34 | + assert target.is_file(), target |
| 35 | + for path in rocm_sdk.find_libraries(name): |
| 36 | + path.unlink() |
| 37 | + path.symlink_to(target) |
| 38 | +PY |
21 | 39 |
|
22 | 40 | COPY src/eval_tools /opt/aka-eval-tools/src/eval_tools |
23 | 41 |
|
24 | 42 | ENV AKA_EVAL_TOOL_FRAMEWORK_ROOT=/opt/aka-eval-tools \ |
25 | 43 | PYTHONPATH=/opt/aka-eval-tools \ |
26 | | - AKA_GPU_ASAN_RUNTIME_DIR=/opt/rocm-7.2.0/lib/asan \ |
27 | | - AKA_GPU_ASAN_HIP_RUNTIME=/opt/rocm-7.2.0/lib/asan/libamdhip64.so \ |
28 | | - AKA_GPU_ASAN_HOST_PRELOAD=/opt/rocm-7.2.0/lib/llvm/lib/clang/22/lib/linux/libclang_rt.asan-x86_64.so \ |
29 | | - AKA_GPU_ASAN_HOST_LIB_DIR=/opt/rocm-7.2.0/lib/llvm/lib/clang/22/lib/linux \ |
30 | | - AKA_GPU_ASAN_NORMAL_ROCM_LIB_DIR=/opt/rocm-7.2.0/lib |
| 44 | + AKA_GPU_ASAN_RUNTIME_DIR=/opt/rocm-asan-10.0/lib \ |
| 45 | + AKA_GPU_ASAN_HIP_RUNTIME=/opt/rocm-asan-10.0/lib/libamdhip64.so \ |
| 46 | + AKA_GPU_ASAN_HOST_PRELOAD=/opt/rocm-asan-10.0/lib/llvm/lib/clang/23/lib/linux/libclang_rt.asan-x86_64.so \ |
| 47 | + AKA_GPU_ASAN_HOST_LIB_DIR=/opt/rocm-asan-10.0/lib/llvm/lib/clang/23/lib/linux \ |
| 48 | + AKA_GPU_ASAN_NORMAL_ROCM_LIB_DIR=/opt/rocm/lib |
0 commit comments