#1577·colibri

[Bug]: qwen36 CUDA_DLL on Windows: tier selects 0 devices unless COLI_GPUS is set (available_device_count is queried before the DLL is loaded)

Author: cyphrrrCreated Sep 16, 2026Updated Sep 17, 2026

Commit or version

b5968eb67cbf9e64e9b03ef066fe9b1d57a21e7d (dev, includes #1537)

Environment

  • Windows 11 Pro 24H2 (10.0.26200), native, no WSL
  • Intel i5-12600KF, 32 GB RAM, NVMe
  • NVIDIA RTX 4070 SUPER (12 GB, sm_89), driver 616.92
  • CUDA Toolkit 13.4.1, VS 2022 Build Tools 17.14 (MSVC 19.44.35229, x64), MSYS2 make 4.4.1 / MinGW gcc 16.2.0
  • Model: Qwen3.6-35B-A3B int4-gs64 container

Reproduction steps

From an x64 Native Tools prompt with C:\msys64\\\usr\bin on PATH, in c/:

make cuda-dll CUDA_ARCH=sm_89
make qwen36.exe CUDA_DLL=1 ARCH=native

Then start the engine with the tier requested but without COLI_GPUS/COLI_GPU:

set COLI_CUDA=1
set SNAP=<qwen36_i4 container>
set N_NEW=8
qwen36.exe 256 4 prompt.txt

(Same result through the launcher: coli chat --model <qwen36_i4> --gpu auto --cap 256--gpu auto does not set COLI_GPUS.)

Expected behavior

The tier picks the visible GPU(s), as on Linux, and prints [CUDA] device 0: ... / [CUDA] mode: routed experts (qwen36 VRAM tier).

Actual behavior and logs

[qtier] COLI_GPUS unset: selecting 0 visible device(s)
[qtier] no visible CUDA devices -> CPU path