Skip to content

Working 4x MI50 (gfx906) recipe for Qwen3.8-Flash-Next + note: tensor-split needs -fa on #11

Description

@JackDanger

Got Qwen3.8-Flash-Next running on 4x MI50 (gfx906, 32GB each, ROCm 6.3.3) with this fork — thanks for carrying the qwen4exp code. Sharing the exact working recipe and two things that cost me a load cycle each, in case it helps the next gfx906 person.

Build (in a rocm-gfx906 container, since the host toolchain is minimal):

cmake -B build -G Ninja -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx906 -DGPU_TARGETS=gfx906 \
  -DCMAKE_BUILD_TYPE=Release -DLLAMA_CURL=OFF && cmake --build build -j8

Run (unsloth UD-Q4_K_XL, 4 shards, TP4):

llama-server -m Qwen3.8-Flash-Next-UD-Q4_K_XL-00001-of-00004.gguf \
  -ngl 99 -ot per_layer_token_embd=CPU --split-mode tensor -tps 4 \
  -c 32768 -np 1 -fa on --jinja --no-mmap

Two gotchas:

  • --split-mode tensor requires -fa on. With -fa off it aborts at load with SPLIT_MODE_TENSOR requires flash_attn to be enabled. Most gfx906 guidance says "start with -fa off," so this bites — worth a note in the README, or defaulting FA on when tensor-split is set.
  • The PLE table is per_layer_token_embd (not ple_ngram_embd), so -ot per_layer_token_embd=CPU is the right override to keep the ~51B n-gram table in host RAM (needs ~51GB+ free).

Measured: single-stream decode ~20-21 tok/s at 256-token gen, coherent output. Keeping the PLE on-GPU instead of CPU (dropping the -ot) gave no speedup (~19 vs ~21) and more VRAM, so the CPU offload is the right call. Loads to ~22GB/card.

Also FWIW common_fit_params ... not implemented for SPLIT_MODE_TENSOR, abort prints as scary but is just a warning — load continues.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions