From 637e382f04851c5fa27d114e99f555b45019a940 Mon Sep 17 00:00:00 2001 From: Ettore Di Giacinto Date: Wed, 1 Jul 2026 20:06:41 +0000 Subject: [PATCH] fix(hipblas): symlink amdgpu.ids so ROCm backends find the ASIC ID table ROCm's bundled libdrm_amdgpu looks up the GPU ASIC ID table at a hardcoded fallback path, /opt/amdgpu/share/libdrm/amdgpu.ids, which is only populated by AMD's full amdgpu-install (graphics/DKMS) stack. The hipblas image is compute-only and doesn't have it, so every model load logs "No such file or directory" and the GPU can't be identified. Symlink it to the equivalent file already shipped by Ubuntu's libdrm-amdgpu1 package. Fixes #10624 Signed-off-by: Ettore Di Giacinto --- Dockerfile | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Dockerfile b/Dockerfile index 1611c6e1f..e6bd7fb75 100644 --- a/Dockerfile +++ b/Dockerfile @@ -171,6 +171,17 @@ RUN if [ "${BUILD_TYPE}" = "hipblas" ]; then \ ln -s /opt/rocm-**/lib/llvm/lib/libomp.so /usr/lib/libomp.so \ ; fi +# ROCm's bundled libdrm_amdgpu is built with a hardcoded fallback lookup path +# for the ASIC ID table (/opt/amdgpu/share/libdrm/amdgpu.ids), which only exists +# if AMD's full amdgpu graphics/DKMS stack is installed. This compute-only image +# doesn't have it, so hipblas/rocBLAS log "No such file or directory" on every +# model load and can fail to identify the GPU. Point it at the equivalent file +# Ubuntu's libdrm-amdgpu1 already ships. +RUN if [ "${BUILD_TYPE}" = "hipblas" ] && [ -f /usr/share/libdrm/amdgpu.ids ] && [ ! -e /opt/amdgpu/share/libdrm/amdgpu.ids ]; then \ + mkdir -p /opt/amdgpu/share/libdrm && \ + ln -s /usr/share/libdrm/amdgpu.ids /opt/amdgpu/share/libdrm/amdgpu.ids \ + ; fi + RUN expr "${BUILD_TYPE}" = intel && echo "intel" > /run/localai/capability || echo "not intel" # Cuda