# llama-cpp-rocm6/Dockerfile # Custom llama.cpp server with ROCm 6.1 + gfx906 (MI50) support. # Build: docker build -t llama-cpp:rocm-gfx906 . FROM rocm/dev-ubuntu-22.04:6.1.2-complete AS builder RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y curl git build-essential pkg-config cmake make && rm -rf /var/lib/apt/lists/* ARG LLAMACPP_VERSION=b9596 RUN git clone --depth 1 --branch ${LLAMACPP_VERSION} https://github.com/ggml-org/llama.cpp.git /build WORKDIR /build ENV HIP_PATH=/opt/rocm ROCM_PATH=/opt/rocm PATH=/opt/rocm/bin:/opt/rocm/llvm/bin:${PATH} CMAKE_PREFIX_PATH=/opt/rocm RUN mkdir build && cd build && \ cmake .. -DGGML_HIP=ON -DCMAKE_BUILD_TYPE=Release \ -DAMDGPU_TARGETS="gfx906:xnack-" \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ -DGGML_CUDA=OFF -DGGML_VULKAN=OFF -DGGML_METAL=OFF \ -DBUILD_SHARED_LIBS=OFF && \ cmake --build . --target llama-server -- -j $(nproc) FROM ubuntu:24.04 RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ ca-certificates curl libstdc++6 libgomp1 libopenblas0 \ libnuma1 libelf1 libdrm2 libdrm-amdgpu1 \ && rm -rf /var/lib/apt/lists/* COPY --from=builder /opt/rocm/lib/ /opt/rocm/lib/ COPY --from=builder /opt/rocm/share/ /opt/rocm/share/ COPY --from=builder /build/build/bin/llama-server /usr/local/bin/llama-server RUN echo /opt/rocm/lib > /etc/ld.so.conf.d/rocm.conf && ldconfig ENV HSA_OVERRIDE_GFX_VERSION=9.0.6 HCC_AMDGPU_TARGET=gfx906 HSA_ENABLE_SDMA=0 EXPOSE 8080 ENTRYPOINT ["/usr/local/bin/llama-server"]