Pull requests / #1789

#1789 setup: images on Windows AMD with a hand-built encoder, CPU or Vulkan (#1155)

open · @gt50 · 0 comments · View on GitHub

Setup & installServer & APIAMD / HIPNVIDIA / CUDAModels & quantsDocumentationWindowsLinux

Description

## Title
Issue: Resolves #1155

## Summary
Images on Windows AMD with an image encoder built from `tools/vision`. The CPU build is used for `--vision cpu`. A Vulkan build (`-DGGML_VULKAN=ON`) runs on the Radeon and is used for `--vision gpu`. The ready-made zip still carries no encoder (shipping one in the zip is a separate step). Measured on a Ryzen AI Max+ 395 / Radeon 8060S, Windows 11.

This PR now carries only this part. The other changes it had are in their own PRs: #1803, #1804, #1805, #1806, #1807.

## What changed
- **`setup.py`:**
  - `hip_vision()` accepts `--vision cpu` on Windows when a hand-built encoder exists (`engine\`, `build-vision\bin`, `engine\.previous` or `build-vision-vulkan\bin`), and `yes`/`gpu` when the Vulkan build exists.
  - After the engine step, `place_windows_encoder()` puts the right build beside the engine, including after an engine update replaces the folder.
  - Without an encoder, images stay off as before, with a message pointing to the docs.
- **`docs/AMD_HIP.md`:** a new "Images on Windows" section with both builds and the measurements below; the "Differences" line no longer says images are Linux-only.
- **`tools/test_setup_amd.py`:**
  - a hand-built encoder in each place is used;
  - the Vulkan build gives `gpu` and replaces a CPU build beside the engine;
  - no encoder anywhere leaves images off.

Measured (UD-IQ4_XS, 1224 x 1584 phone photos of documents, 1024 image tokens, first read of each picture):

| Photo | CPU encoder | Vulkan encoder |
| --- | --- | --- |
| 5-column settlement statement | 31.7 s, 44/44 amounts | 9.8 s, 44/44 |
| permit list | 27.7 s, permit number exact | 6.2 s, exact |

At the CPU default of 300 tokens, the same statement photo read only 32/44 amounts in the right column, and misread the year.

## Extra Notes
- **Defaults:** without a hand-built encoder setup does exactly what it did before; images are still refused for Windows AMD. Setup-only: no engine, server or CUDA/HIP/SYCL code changes.
- **Related:** #1792 (Hugua700) makes `find_vcvars()` see Visual Studio 2026 for non-CUDA builds; the CPU encoder build needs it on such machines. #1156 was closed in favour of this PR.
- **Tests:** all `serve` and `tools/test_setup_*` test files pass on `main` fb58e0d.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Related on strata.com

Editorial links to help you install, pick models, or read release notes — not part of the upstream thread.