diff --git a/toolboxes/Dockerfile.rocm-7.9 b/toolboxes/Dockerfile.rocm-7.9 index 1dba5eb..d299ad7 100644 --- a/toolboxes/Dockerfile.rocm-7.9 +++ b/toolboxes/Dockerfile.rocm-7.9 @@ -2,37 +2,38 @@ FROM registry.fedoraproject.org/fedora:43 AS builder RUN dnf -y --nodocs --setopt=install_weak_deps=False install \ - make gcc cmake lld clang clang-devel compiler-rt libcurl-devel \ - radeontop git vim patch curl ninja-build tar xz aria2c \ - && dnf clean all && rm -rf /var/cache/dnf/* + make gcc cmake lld clang clang-devel compiler-rt libcurl-devel \ + radeontop git vim patch curl ninja-build tar xz aria2c \ + && dnf clean all && rm -rf /var/cache/dnf/* # find & fetch the latest Linux 7.x.x rc tarball (gfx1151) WORKDIR /tmp ARG ROCM_MAJOR_VER=7 ARG GFX=gfx120X-all RUN set -euo pipefail; \ - BASE="https://therock-nightly-tarball.s3.amazonaws.com"; \ - PREFIX="therock-dist-linux-${GFX}-${ROCM_MAJOR_VER}"; \ - KEY="$(curl -s "${BASE}?list-type=2&prefix=${PREFIX}" \ - | grep -o "therock-dist-linux-${GFX}-${ROCM_MAJOR_VER}\.[0-9]\+\.[0-9]\+rc[0-9]\{8\}\.tar\.gz" \ - | sort | tail -n1)"; \ - echo "Latest tarball: ${KEY}"; \ - aria2c -x 16 -s 16 -j 16 --file-allocation=none "${BASE}/${KEY}" -o therock.tar.gz -RUN mkdir -p /opt/rocm-7.0 \ - && tar xzf therock.tar.gz -C /opt/rocm-7.0 --strip-components=1 + BASE="https://therock-nightly-tarball.s3.amazonaws.com"; \ + PREFIX="therock-dist-linux-${GFX}-${ROCM_MAJOR_VER}"; \ + KEY="$(curl -s "${BASE}?list-type=2&prefix=${PREFIX}" \ + | grep -o "therock-dist-linux-${GFX}-${ROCM_MAJOR_VER}\.[0-9]\+\.[0-9]\+rc[0-9]\{8\}\.tar\.gz" \ + | sort | tail -n1)"; \ + echo "Latest tarball: ${KEY}"; \ + aria2c -x 16 -s 16 -j 16 --file-allocation=none "${BASE}/${KEY}" -o therock.tar.gz \ + && mkdir -p /opt/rocm-7.0 \ + && tar xzf therock.tar.gz -C /opt/rocm-7.0 --strip-components=1 \ + && rm -f therock.tar.gz ENV ROCM_PATH=/opt/rocm-7.0 \ - HIP_PLATFORM=amd \ - HIP_PATH=/opt/rocm-7.0 \ - HIP_CLANG_PATH=/opt/rocm-7.0/llvm/bin \ - HIP_INCLUDE_PATH=/opt/rocm-7.0/include \ - HIP_LIB_PATH=/opt/rocm-7.0/lib \ - HIP_DEVICE_LIB_PATH=/opt/rocm-7.0/lib/llvm/amdgcn/bitcode \ - PATH=/opt/rocm-7.0/bin:/opt/rocm-7.0/llvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \ - LD_LIBRARY_PATH=/opt/rocm-7.0/lib:/opt/rocm-7.0/lib64:/opt/rocm-7.0/llvm/lib \ - LIBRARY_PATH=/opt/rocm-7.0/lib:/opt/rocm-7.0/lib64 \ - CPATH=/opt/rocm-7.0/include \ - PKG_CONFIG_PATH=/opt/rocm-7.0/lib/pkgconfig + HIP_PLATFORM=amd \ + HIP_PATH=/opt/rocm-7.0 \ + HIP_CLANG_PATH=/opt/rocm-7.0/llvm/bin \ + HIP_INCLUDE_PATH=/opt/rocm-7.0/include \ + HIP_LIB_PATH=/opt/rocm-7.0/lib \ + HIP_DEVICE_LIB_PATH=/opt/rocm-7.0/lib/llvm/amdgcn/bitcode \ + PATH=/opt/rocm-7.0/bin:/opt/rocm-7.0/llvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \ + LD_LIBRARY_PATH=/opt/rocm-7.0/lib:/opt/rocm-7.0/lib64:/opt/rocm-7.0/llvm/lib \ + LIBRARY_PATH=/opt/rocm-7.0/lib:/opt/rocm-7.0/lib64 \ + CPATH=/opt/rocm-7.0/include \ + PKG_CONFIG_PATH=/opt/rocm-7.0/lib/pkgconfig RUN printf '%s\n' \ 'export ROCM_PATH=/opt/rocm-7.0' \ @@ -54,28 +55,28 @@ RUN printf '%s\n' \ WORKDIR /opt/llama.cpp RUN git clone --recursive https://github.com/ggerganov/llama.cpp.git . \ - && git clean -xdf \ - && git submodule update --recursive + && git clean -xdf \ + && git submodule update --recursive RUN cmake -S . -B build \ - -DGGML_HIP=ON \ - -DAMDGPU_TARGETS=gfx1201 \ - -DCMAKE_BUILD_TYPE=Release \ - -DGGML_RPC=ON \ - -DLLAMA_HIP_UMA=ON \ - && cmake --build build --config Release -- -j$(nproc) \ - && cmake --install build --config Release + -DGGML_HIP=ON \ + -DAMDGPU_TARGETS=gfx1201 \ + -DCMAKE_BUILD_TYPE=Release \ + -DGGML_RPC=ON \ + -DLLAMA_HIP_UMA=ON \ + && cmake --build build --config Release -- -j$(nproc) \ + && cmake --install build --config Release # keep bin; drop headers/docs/static libs (retain llama.cpp for rpc binaries) RUN find /opt/rocm-7.0 -type f -name '*.a' -delete \ - && rm -rf /opt/rocm-7.0/include /opt/rocm-7.0/share \ - /opt/rocm-7.0/llvm/include /opt/rocm-7.0/llvm/share + && rm -rf /opt/rocm-7.0/include /opt/rocm-7.0/share \ + /opt/rocm-7.0/llvm/include /opt/rocm-7.0/llvm/share # runtime FROM registry.fedoraproject.org/fedora-minimal:43 RUN microdnf -y --nodocs --setopt=install_weak_deps=0 install \ - bash ca-certificates libatomic libstdc++ libgcc radeontop vim \ + bash ca-certificates libatomic libstdc++ libgcc radeontop vim \ && microdnf clean all && rm -rf /var/cache/dnf/* COPY --from=builder /opt/rocm-7.0 /opt/rocm-7.0 @@ -86,17 +87,17 @@ COPY gguf-vram-estimator.py /usr/local/bin/ RUN chmod +x /usr/local/bin/gguf-vram-estimator.py ENV ROCM_PATH=/opt/rocm-7.0 \ - HIP_PLATFORM=amd \ - HIP_PATH=/opt/rocm-7.0 \ - HIP_CLANG_PATH=/opt/rocm-7.0/llvm/bin \ - HIP_INCLUDE_PATH=/opt/rocm-7.0/include \ - HIP_LIB_PATH=/opt/rocm-7.0/lib \ - HIP_DEVICE_LIB_PATH=/opt/rocm-7.0/lib/llvm/amdgcn/bitcode \ - PATH=/opt/rocm-7.0/bin:/opt/rocm-7.0/llvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \ - LD_LIBRARY_PATH=/opt/rocm-7.0/lib:/opt/rocm-7.0/lib64:/opt/rocm-7.0/llvm/lib \ - LIBRARY_PATH=/opt/rocm-7.0/lib:/opt/rocm-7.0/lib64 \ - CPATH=/opt/rocm-7.0/include \ - PKG_CONFIG_PATH=/opt/rocm-7.0/lib/pkgconfig + HIP_PLATFORM=amd \ + HIP_PATH=/opt/rocm-7.0 \ + HIP_CLANG_PATH=/opt/rocm-7.0/llvm/bin \ + HIP_INCLUDE_PATH=/opt/rocm-7.0/include \ + HIP_LIB_PATH=/opt/rocm-7.0/lib \ + HIP_DEVICE_LIB_PATH=/opt/rocm-7.0/lib/llvm/amdgcn/bitcode \ + PATH=/opt/rocm-7.0/bin:/opt/rocm-7.0/llvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \ + LD_LIBRARY_PATH=/opt/rocm-7.0/lib:/opt/rocm-7.0/lib64:/opt/rocm-7.0/llvm/lib \ + LIBRARY_PATH=/opt/rocm-7.0/lib:/opt/rocm-7.0/lib64 \ + CPATH=/opt/rocm-7.0/include \ + PKG_CONFIG_PATH=/opt/rocm-7.0/lib/pkgconfig RUN printf '%s\n' \ 'export ROCM_PATH=/opt/rocm-7.0' \ @@ -118,7 +119,7 @@ RUN printf '%s\n' \ # make /usr/local libs visible without touching env RUN echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf \ - && echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf \ - && ldconfig + && echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local.conf \ + && ldconfig CMD ["/bin/bash"]