whisper.cpp/ggml
Mattbusel 0d3bdb76ec fix: gate AVX/AVX-512/AMX on OS XSAVE support via XGETBV
CPUID feature bits report hardware capability only.  The OS must also
have enabled the relevant extended register state in XCR0 before VEX/
EVEX instructions can execute safely.  Without this check, a process
on a hypervisor or restricted OS that has not set XCR0[2:1]/[7:5]/
[18:17] will receive SIGILL the moment it hits an AVX/AVX-512/AMX
instruction — even though CPUID reports support.

Add three helpers to cpuid_x86:
  os_saves_ymm() — OSXSAVE + XCR0[2:1] (AVX, AVX2, FMA, F16C, AVX-VNNI)
  os_saves_zmm() — chains os_saves_ymm() + XCR0[7:5] (all AVX-512)
  os_saves_amx() — chains os_saves_zmm() + XCR0[18:17] (AMX-INT8)

xgetbv() is portable: _xgetbv() on MSVC, inline asm on GCC/Clang.

Resolves the long-standing FIXME comment in ggml_backend_cpu_x86_score().
2026-03-11 05:20:37 -04:00
..
cmake cmake : remove unused file (ggml/1419) 2026-02-08 09:29:10 +02:00
include ggml/gguf : prevent integer overflows (llama/19856) 2026-02-27 20:57:58 +02:00
src fix: gate AVX/AVX-512/AMX on OS XSAVE support via XGETBV 2026-03-11 05:20:37 -04:00
.gitignore whisper : reorganize source code + improve CMake (#2256) 2024-06-26 19:34:09 +03:00
CMakeLists.txt ggml : bump version to 0.9.7 (ggml/1425) 2026-02-27 20:57:58 +02:00