You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 12ccf3a
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: TODO.md
+45-6Lines changed: 45 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -274,12 +274,12 @@ Kept as a list because each entry names the machine it needs -- the harness is
274
274
| what | needs | why it cannot wait for CI |
275
275
|---|---|---|
276
276
|~~the cost of `GGML_OPENMP=OFF`~~|~~16-vCPU Linux~~|**done 2026-10-11: no measurable cost**|
277
-
|**re-baseline the module tables at the current pin**|the same instances | the tables are b11538, and **#30270 in the b11556 range fixes F16C on AVX2**, i.e. the `haswell` class every "against haswell" column is computed against -- so nothing measured from b11556 on may be compared with that page (noted there too)|
278
-
| Does a self-contained jar load on a **slim/distroless** image? |any Linux instance, a container | CI runs on full runners, so it cannot see this class at all|
279
-
| Does **`75-real 80-real 90-real`** make a T4 work? |a rebuilt CUDA module + a `g4dn` instance | the module has to be built first, so this follows a CI run|
280
-
|**Windows extraction reuse**: second start copies nothing, a running JVM's locked DLLs survive another build's cleanup | a rented Windows instance, two JVMs | file locking is Windows-only and needs two processes|
281
-
| the **`sapphirerapids` vs `haswell`** gap at high core counts |a large Intel instance | one 4-vCPU table exists; generation ranking can reverse with threads|
282
-
|**OpenVINO on an Intel GPU/NPU**| hardware nobody rents | the 172x figure is the CPU-plugin fallback only, so nothing is known about the hardware it is for |
277
+
|~~re-baseline the module tables at the current pin~~|— |**done 2026-10-12 at b11558 on 64 cores**, and the suspicion behind it was **refuted**: #30270 changes nothing measurable ([`docs/benchmarks/upstream-f16c-30270.md`](docs/benchmarks/upstream-f16c-30270.md)), so the baseline moved with the machine size, not with the pin|
278
+
|~~Does a self-contained jar load on a slim/distroless image?~~|— |**done 2026-10-12**: distroless and `temurin:21-jre` load, `temurin:21-jre-alpine` is refused by name (`os.name=Linux-Musl`) -- see [`docs/benchmarks/native-loading.md`](docs/benchmarks/native-loading.md)|
279
+
|~~Does `75-real 80-real 90-real` make a T4 work?~~|— |**done 2026-10-12: yes.** Three `exit 134` aborts became three clean runs on the same AMI, driver and GPU|
280
+
|~~Windows extraction reuse~~| — |**done 2026-10-12 locally**, no rented machine needed: ~810 ms saved per start, and a sweep leaves exactly the five files a running JVM still holds|
281
+
|~~the `sapphirerapids` vs `haswell` gap at high core counts~~|— |**done 2026-10-12: the ranking reverses.** At 64 threads `haswell` leads token generation at 192.6 while `sapphirerapids` is last at 181.8 -- and ggml picks the latter|
282
+
|**OpenVINO on an Intel GPU/NPU**| hardware nobody rents | the 21.7x/336x figures are the CPU-plugin fallback only, so nothing is known about the hardware the jar is actually for |
283
283
| the two **SME** aarch64 modules | not rentable anywhere | — |
284
284
285
285
## Open — jllama-specific
@@ -860,6 +860,45 @@ three different subsystems and a combined report gets triaged as one.
860
860
| 3 |`ggml-rpc: the client answers every supports_op with true`| the RPC section of `CLAUDE.md`: a served device that lacks an op **aborts the server**. Reproduced on the macOS CI runners' paravirtual Metal GPU, which has no `MUL_MAT` and took the first run down; it is why every test here serves `CPU` by name | upstream's own TODO comment admits it. Should the client forward the query to the server, or should `rpc-server -d` refuse a device whose op set it cannot report? |
861
861
| 4 |`windows-rocm: 83,362 compiler warnings, against 9 on linux-rocm`| the table below in this section (714,345 log lines against 2,455; the per-class counts; all of them in `ggml/src/ggml-cuda/*.cu`) | the cause is the language, not the arch count: HIP sources are compiled as plain C++ on Windows (`CXX_IS_HIPCC` on `WIN32`) and as HIP on Linux. Fix the warnings, or the C++-on-Windows choice? Their own `windows-rocm` job pays the identical cost |
862
862
863
+
#### A fifth, and this one is a small PR rather than an issue: the #30270 follow-up
864
+
865
+
Unlike the four above, here there **is** something to offer -- and the measurement is already done
Copy file name to clipboardExpand all lines: docs/benchmarks/README.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,6 +15,7 @@ themselves live in [`../../TODO.md`](../../TODO.md).
15
15
|---|---|
16
16
|[`cpu-backend-modules.md`](cpu-backend-modules.md)| What each of the 22 shipped CPU backend modules is worth, per microarchitecture — and whether `ggml_backend_load_best` picks the fastest one |
17
17
|[`gpu-module-jars.md`](gpu-module-jars.md)| What happens when a GPU module jar is actually *used* -- two findings that contradict the "a module that cannot help is skipped" premise |
18
+
|[`upstream-f16c-30270.md`](upstream-f16c-30270.md)| An isolation of one upstream commit: what it does, that it changes nothing measurable here, and a compile-time guard proven red against the defect |
18
19
|[`native-loading.md`](native-loading.md)| What extracting the natives costs and what the reuse saves, how a running JVM's locked files behave, and which container base images can load the Linux jar |
19
20
|[`ec2-harness.md`](ec2-harness.md)| How a measurement is run on rented hardware, and the invariants that came out of getting it wrong |
0 commit comments