Update (2026-03-20): This workaround is no longer needed as of Immich v2.6.0+
Immich v2.6.0 (PR #26178) ships with ROCm 7.2 and replaces the old ROCM ONNX Runtime provider with the MIGraphX backend. ROCm 7.2 natively supports gfx1150/gfx1151 (RDNA 3.5), so the custom Dockerfile and
HSA_OVERRIDE_GFX_VERSIONhack are no longer necessary. See the v2.6.0+ instructions below.
Immich uses ROCm to run GPU accelerated ML (facial recognition, smart search, etc). Versions up to v2.5.x came bundled with ROCm 6.4.3, which does not support RDNA 3.5 GPUs like the 890M. The first version that supports these GPUs is 6.4.4, so here are the steps to take when setting up Immich to be able to run ML models on the GPU.
- Make sure that your .env contains
HSA_OVERRIDE_GFX_VERSION=11.0.0 - You will need to extend the existing
immich_machine_learningimage and replace the ROCm runtime inside it.- Create a new
Dockerfilethat looks like thisFROM ghcr.io/immich-app/immich-machine-learning:v2.5.6-rocm USER root # Add the AMD GPU repository for Ubuntu 22.04 (used by the base image) # This will provide the latest ROCm packages RUN apt-get update && apt-get install -y wget gnupg RUN wget -qO - https://repo.radeon.com/rocm/rocm.gpg.key | apt-key add - RUN echo "deb [arch=amd64] https://repo.radeon.com/rocm/apt/6.4.4/ jammy main" | tee /etc/apt/sources.list.d/rocm.list # Update package lists and upgrade to the latest ROCm # This will overwrite the older ROCm version with the new one RUN apt-get update && \ apt-get install -y --allow-downgrades \ rocm-hip-sdk \ rocm-libs && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # Install onnxruntime-rocm using pip, which is the new standard RUN pip install onnxruntime-rocm
- Build the image (in the same folder as the Dockerfile):
docker build -t immich-machine-learning-custom-rocm .
- Create a new
- In your immich docker-compose.yml file, replace the
imageproperty of theimmich-machine-learningservice with the newly built imageimmich-machine-learning-custom-rocm - Run
docker compose up -dto start immich
This will update ROCm to 6.4.4 and pick up the gfx1100 precompiled libraries.
You will know that this works if the immich_machine_learning container does not emit an error regarding missing libraries,
and the immich_server container emits output like:
[Nest] 7 - 10/05/2025, 4:37:53 PM LOG [Microservices:MachineLearningRepository] Machine learning server became healthy (http://immich-machine-learning:3003).
[Nest] 7 - 10/05/2025, 4:37:54 PM LOG [Microservices:PersonService] Detected 2 new faces in asset 9419603f-14b9-4d81-a415-c6eea76d199a
As of v2.6.0, the official -rocm image uses ROCm 7.2 with the MIGraphX backend, which natively supports gfx1150. No custom image or HSA override needed.
Just use the official image:
image: ghcr.io/immich-app/immich-machine-learning:v2.6.1-rocmRecommended env vars for MIGraphX performance tuning:
MIGRAPHX_DISABLE_MIOPEN_FUSION=1
MIGRAPHX_DISABLE_SCHEDULE_PASS=1
MIGRAPHX_DISABLE_REDUCE_FUSION=1
MIGRAPHX_ENABLE_HIPRTC_WORKAROUNDS=1Notes from testing on gfx1150 (Radeon 890M):
- CLIP (smart search) and face detection/recognition work perfectly on the GPU
- OCR (PP-OCRv5) has a MIGraphX runtime error on gfx1150 — disable it in Administration → Machine Learning → OCR until upstream fixes it
- First run is slow (~2 min per model) while MIGraphX compiles for gfx1150 — subsequent runs use the cached compilation
HSA_OVERRIDE_GFX_VERSIONcan be removed entirely — ROCm 7.2 detects gfx1150 natively
Awesome, thank you! What's the performance like running Immich on Ryzen AI 9 370 HX?