Pull requests / #1532

#1532 prefill: guard atomic::wait/notify_all so GCC 10 builds again (#1488)

open · @nekomario28 · 0 评论 · 在 GitHub 查看

AMD / HIPNVIDIA / CUDA

描述

## Summary

- `Stager` (from #1057) waits on `std::atomic<int>::wait` / `notify_all` — a C++20 **library** feature libstdc++ only ships from GCC 11. GCC 10 passes `CMAKE_CXX_STANDARD 20` yet fails at the three call sites in `src/prefill/prefill.cpp`, so Ubuntu 20.04 (focal, GCC 10 is the newest packaged compiler) and Debian 11 cannot build 0.1.40.2+.
- Guard all three call sites with `__cpp_lib_atomic_wait`: toolchains without it take the pre-#1057 yield spin, and the `notify_all()` calls are skipped on that path — they only wake threads blocked in `wait()`, which cannot exist there.
- Keeps the documented "GCC < 11 builds" configuration working; behavior on GCC 11+ is unchanged.

Fixes #1488 (implements the reporter's suggested option 2; no minimum-version bump needed since the spin fallback restores the old behavior).

## Test plan

- [x] `g++ -std=c++20 -fsyntax-only` on `prefill.cpp` via the HIP compat include path (wait path): clean
- [x] same file with `#undef __cpp_lib_atomic_wait` injected after the includes (fallback path): clean
- [ ] CI: HIP/CUDA build jobs green
- [ ] Reporter's GCC 10 environment (Ubuntu 20.04): build reaches past `strata_prefill`

站内延伸阅读

链到安装、模型与版本说明,便于 SEO/GEO,非官方 issue 正文。