Donato Capitella c76c69d8d8 first commit
2025-07-28 19:44:18 +01:00
2025-07-28 19:44:18 +01:00
2025-07-28 19:44:18 +01:00
2025-07-28 19:44:18 +01:00

amd-strix-halo-toolboxes

This repository provides two Fedora Rawhidebased Dockerfiles for building isolated dev containers with AMDs new Strix Halo GPUs (gfx1151):

  • Docker.rocm: Builds llama.cpp with ROCm (HIP) support targeting gfx1151
  • Docker.vulkan: Builds llama.cpp with Vulkan compute support

Both images load the latest ROCm/Vulkan libraries from Fedora Rawhide to ensure compatibility with Strix Halo.

Repository Structure

.
├── Docker.rocm        # HIP-based build for ROCm (gfx1151)
├── Docker.vulkan      # Vulkan-based build
└── README.md          # This documentation

Prerequisites

  • Podman (or Docker aliased to Podman) installed on a Fedora Rawhide (or compatible) host
  • Fedora Toolbox (for creating dev containers)
  • AMD GPU drivers (ROCm/Vulkan) installed on the host

1. Building the Images

ROCm (HIP) Image

podman build -t llama-rocm -f Docker.rocm .

Vulkan Image

podman build -t llama-vulkan -f Docker.vulkan .

2. Creating Toolbox Containers

Toolbox will automatically mount your home directory, map your UID:GID, enable X11, and use the host network. You only need to pass through the GPU devices and relax seccomp.

ROCm Toolbox

toolbox create llama-rocm \
  --image localhost/llama-rocm:latest \
  -- \
    --device /dev/kfd \
    --device /dev/dri \
    --group-add video \
    --security-opt seccomp=unconfined

Vulkan Toolbox

toolbox create llama-vulkan \
  --image localhost/llama-vulkan:latest \
  -- \
    --device /dev/dri \
    --group-add video \
    --security-opt seccomp=unconfined

3. Entering and Testing

After creation, enter each container and verify that your GPU and libraries are accessible.

ROCm (HIP) Test

toolbox enter llama-rocm
# inside container:
llama-cli --list-devices

You should see your Strix Halo gfx1151 device listed.

Vulkan Test

toolbox enter llama-vulkan
# inside container:
vulkaninfo | head -n 10
llama-cli --help  

If vulkaninfo reports your GPU and llama-cli runs without errors, the Vulkan build is working.

Host Configuration

The following host details and kernel settings ensure optimal performance and unified memory access for Strix Halo:

  • Machine: HP Z2 Mini G1a
  • Memory: 128 GB RAM, with 512 MB allocated to the GPU in BIOS
  • Host OS: Fedora 42, kernel 6.15.6-200.fc42.x86_64
  • Kernel boot parameters (in /etc/default/grub):
    amd_iommu=off amdgpu.gttsize=131072 ttm.pages_limit=335544321
    
    • amd_iommu=off disables IOMMU for lower latency and avoids address translation overhead.
    • amdgpu.gttsize=131072 sets the GPU GTT (Graphics Translation Table) size, enabling a unified memory window so the GPU can directly access up to 128 GB of system RAM.
    • ttm.pages_limit=335544321 raises the TTM (Translation Table Maps) page limit to allow larger pinned allocations.
  • Apply parameters: after editing /etc/default/grub, run
    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    

Notes

Both images pull Fedora Rawhide packages for the newest ROCm/Vulkan support.

S
Description
No description provided
Readme 2 MiB
Languages
Python 72.4%
Shell 27.1%
C 0.5%