Pull requests / #1766
#1766 sycl: add a device-event BF16/F32 MMVF bench
open · @duncanmcqueen · 0 commentaires · Sur GitHub
Description
## Summary Adds `sycl/probe/bf16_event_bench.cpp` and a CMake target, a standalone probe that times the existing BF16/F32 matrix-vector paths (`bf16_gemv_fp32_mmvf*`) with **device event timestamps** on a profiling-enabled in-order queue, and checks each result against a single-token call of the same kernel. It reports one JSON line per shape. ## What changed - `sycl/probe/bf16_event_bench.cpp`: times the default `bf16_gemv_fp32_mmvf_multi` path vs `STRATA_MMVF_ROWS=1` across the Coder's shapes (`n` x `k`) and 1-8 tokens. Gates on bitwise equality with the per-token calls, guard regions, strided inputs (`ldx`/`ldy`), zero and scale-extreme inputs, an FP64 oracle bound, odd tails, and invalid-geometry rejection. Reports queue-span median/min, host wall, empty-marker cost, weight GB/s, and an output hash. - `sycl/CMakeLists.txt`: `sycl_bf16_event_bench` target plus two CTest cases (`--quick --rows 0` and `--quick --rows 1`). ## Extra Notes Measured on an Arc A770 (`xe`, PCIe 3.0 x4): the rows path (`STRATA_MMVF_ROWS=1`) is **1.4-6x slower** than the default on this card — 320x10240 at T=3: 16.1 -> 79.0 us; 2560x2560 at T=4: 38.7 -> 245.5 us — all outputs bitwise-identical. The probe exists so the default-vs-rows choice stays measured. It runs on `level_zero` and needs no model. Both CTest cases pass.
Sur le site
Liens install, modèles, releases.