GitHub ↗
Contents

Windows#

1bit.exe runs on Windows 10 and later (x64): 1bit serve with GGUF models on the CPU (--device cpu, which auto picks) and ONNX Runtime GenAI models (--device onnx, on the CPU), 1bit route (Laya) and 1bit comfy. It is cross-built on Linux. There is no GPU route on Windows for now: the engine's GPU route is HRX, which has no Windows build yet, and Vulkan is leaving the engine (RFC #213). There is no NPU lane, ROCm or ZINC on Windows yet.

scripts/build-windows.sh <out-dir>     # ~2 min on Strix Halo once the downloads are cached

The script writes: - <out-dir>/1bit.exe (3.2 MB). It imports only KERNEL32, WS2_32 and the UCRT that ships with Windows 10. - <out-dir>/llama-server.exe, the llama.cpp pin (third_party/llama.cpp-vulkan) built for Windows, for the CPU. - <out-dir>/ryzenai-server.exe (the ONNX backend, ONNX Runtime), with Microsoft's onnxruntime-genai.dll, onnxruntime.dll and onnxruntime_providers_shared.dll beside it.

Keep them together. 1bit.exe serve -m model.gguf finds llama-server.exe next to itself, and 1bit.exe serve -m <dir with genai_config.json> finds ryzenai-server.exe. --llama-server PATH, ONEBIT_LLAMA_SERVER and ONEBIT_ONNX_SERVER name other ones.

What it downloads#

Every download is pinned and checked against its sha256:

input why
llvm-mingw 20260922 (clang 23, UCRT) the engine is C++26; distribution MinGW GCC 13 is too old
PCRE2 10.48 the tokenizer, linked statically
ONNX Runtime GenAI 0.11.2 win-x64 and ONNX Runtime 1.23.2 win-x64 (Microsoft, MIT) ryzenai-server.exe (CPU). The DirectML builds would add the GPU, but DirectML.dll is under Microsoft's redistributable licence, not MIT, so they are not fetched.

Host tools: cmake, git and curl.

What changed for Windows#

  • Backends. 1bit serve starts its backends with CreateProcess, inside a job object that kills them when its last handle closes. So a backend dies with 1bit.exe for any reason, as PR_SET_PDEATHSIG does on Linux; the Linux and macOS paths are unchanged. Windows has no SIGTERM, so a backend stops with TerminateProcess.
  • Model files. Model and safetensors files are mapped through npu/file_map.{h,cpp} (mmap on POSIX, CreateFileMapping on Windows).
  • cpp-httplib. It is built at the Windows 10 API level, with its non-blocking DNS lookup off, because MinGW's headers lack GetAddrInfoExCancel and the engine only ever connects to 127.0.0.1.
  • 1bit comfy. It spawns comfyui_cpp.exe and waits for it, since there is no exec in place on Windows.
  • ryzenai-server's CMake is used unmodified through a wrapper project:
    • the wrapper clears its MSVC-only /SUBSYSTEM:CONSOLE link flag (MinGW links console programs by default);
    • a one-line Wbemidl.h covers MinGW's lowercase wbemidl.h;
    • the MinGW-built exe links Microsoft's MSVC-built onnxruntime-genai.dll through its import library.

Tested#

On Strix Halo under Wine 11: - CPU route (2026-10-01). The package built without Vulkan. llama-server.exe imports only KERNEL32 and the UCRT. 1bit.exe serve -m Qwen3-0.6B-Q4_K_M.gguf with no --device chose cpu and started llama-server.exe beside it. It answered "The capital of France is Paris." (70 tok/s, on the CPU) and "Three colors are: red, blue, and green." Stopping it left no llama-server.exe behind. - Vulkan route (2026-09-25, before the GPU route went). The same model answered at 132 tok/s on the Radeon 8060S through Wine's Vulkan, and taskkill /F /IM 1bit.exe left no llama-server.exe behind. - 1bit.exe serve -m <Qwen2.5-0.5B CPU ONNX dir> (no --device) chose onnx, started ryzenai-server.exe beside it and answered "The capital of France is Paris." (ryzenai-server.exe alone: 61 tok/s under Wine). After taskkill /F, nothing was left running. - The Linux build of the same sources passes its tests.

It has not run on a real Windows machine yet.

Next#

  • ONNX on the Windows GPU (DirectML), once the DirectML.dll licence question is settled. The Ryzen AI NPU through Ryzen AI Software (its own licence, installed by the user).
  • The NPU lane on Windows XRT.

View this page's source on GitHub ↗