Issues / #1745
#1745 [Bug]: SYCL engine's PCIe probe times a pageable copy, so it reads the link ~4x low and lowers pcie_frac (Arc Pro B70)
open · @sam-fakhreddine · 0 コメント · GitHub で見る
BenchmarksNVIDIA / CUDAModels & quants
本文
### What happened On the SYCL engine the startup PCIe probe reads the link far below what it carries, and the low reading sets `pcie_frac` from it: ``` strata generate: PCIe probe: 7.7 GB/s host->device (best of 7.5 7.5 7.0 7.7) -> pcie_frac 0.21 (default 0.55) ``` The card is an Arc Pro B70 on a PCIe 5.0 x16 link (32 GT/s x16 at the root port and at the card's switch upstream port, checked with `lspci -vv`). A standalone SYCL copy test on the same card and VM, best of 5 per size: | Host to device | 1 MiB | 16 MiB | 256 MiB | 1 GiB | | --- | ---: | ---: | ---: | ---: | | `sycl::malloc_host` (pinned) | 18.9 GB/s | 25.0 | 35.3 | 34.7 | | `malloc` (pageable) | 8.3 | 9.5 | 8.1 | 14.9 | The probe's 256 MiB bursts land on the pageable row. In `sycl/src/program/generate.cpp`, `probe_pcie_h2d_gbps()` allocates its host buffer with `malloc`, while the CUDA engine's probe uses `cudaMallocHost` and the function's own comment says it "copies from pinned host memory, as the expert arena's reads are". The expert mirror is pinned (`... mirrored in pinned host memory (11.63 GiB ...)`), so the probe times a different path from the one decode uses. #485 (fixed in 0.1.37) is about the probe's sampling on CUDA; this is the SYCL port's allocation and is not covered by it. With the buffer from `sycl::malloc_host` the same card reads: ``` strata generate: PCIe probe: 35.6 GB/s host->device (best of 27.0 35.6 33.0 31.8) -> pcie_frac 0.55 (default 0.55) ``` Greedy output tokens are identical either way (IQ2_XS, 20-token and 2,185-token prompts, 256 new tokens). Decode with `--pcie-frac 0.55` against the probed 0.18 on IQ2_XS: 62.6 vs 61.0 tok/s on the 20-token prompt, 60.3 vs 60.1 on the 2,185-token prompt (medians of 3 interleaved pairs). Small here because only 4 to 10% of routed entries come from the mirror on IQ2_XS; a quant with more of its experts in the mirror depends on the share more. ### Strata version, GPU, OS 0.1.41 (main fb58e0d), SYCL engine (AOT, bmg-g31), Arc Pro B70 32 GB, Ubuntu 26.04 VM (Proxmox passthrough), xe driver, oneAPI 2026.1.1, NEO 26.05.37020.3 ### Engine log The two probe lines are above. A fix is ready as a pull request (three lines in `probe_pcie_h2d_gbps()`).
関連リンク
インストール・モデル・リリースへの站内リンク。