Pull requests / #1541

#1541 update: rebuild a local engine for a card it serves, not the most-VRAM one (#1485)

open · @nekomario28 · 0 commentaires · Sur GitHub

Setup & installAMD / HIPNVIDIA / CUDA

Description

## Summary

- `update_installed_engine()` took `gpu_info()`'s most-VRAM pick unconditionally, so a card the model does not run on — the reporter's V100 (sm_70, 32 GB) beside two RTX 4090s — put its arch into the local rebuild's arch list. `build_engine` then forces `"toolkit": 13`, the CUDA 12 guard is bypassed, and `nvcc` dies on `compute_70`.
- Like the HIP branch right above it, prefer an installed card whose arch is in `BUILD.json`'s `archs`. The fallback (no installed card matches, e.g. the install moved PCs) keeps the old union so the present card still gets code.
- Implements the reporter's first suggested fix; the hardcoded `toolkit=13` is untouched — with the right arch list, `install_build_tools`' CUDA 12 decision is correct.

Fixes #1485.

## Test plan

- [x] `python -m unittest tools.test_setup_update` — 10 tests pass, including two new ones:
  - `test_a_local_rebuild_uses_a_card_the_engine_serves` — V100 + 2x4090 fixture, asserts `archs == [89]` (fails on main with `[70, 89]`, the reported bug)
  - `test_a_local_rebuild_without_a_served_card_keeps_the_union` — moved-install fallback still unions the present card's arch
- [x] Full `tools/test_setup_*` suite: 414 tests, only 3 pre-existing failures on clean `main` (network-dependent, GitHub releases 404) — unrelated
- [ ] Real-machine verification on the reporter's 3-GPU box: `./update.sh` rebuilds for `sm_89` only

Sur le site

Liens install, modèles, releases.