variantes-cpu T5 MEDIDO: zstd cortado (dispatch runtime, v3/v4=ruido con i7); zlib inconcluso pero la respuesta es zlib-ng; la lista caliente se concentra en mesa/códecs
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -59,9 +59,22 @@ puñado de libs con kernels vectorizables. Lista caliente inicial (todas ya en e
|
||||
| códecs (ffmpeg-clase, cuando entren) | el caso clásico AVX2 |
|
||||
| `pixman`, `cairo` | raster 2D — **frontera GUI: sólo en worker** (gotcha zig-skew) |
|
||||
|
||||
- **T5 — piloto medido**: v3 de `zlib` + `zstd`, benchmark antes/después con carga real de
|
||||
hammer (pack/hydrate de N artefactos). Si la ganancia no es medible ahí, la lista se corta
|
||||
temprano y barato.
|
||||
- **T5 — piloto medido (2026-07-17, laptop TigerLake, clang 3 variantes base/v3/v4,
|
||||
corpus 200MB mixto fuente+binarios):**
|
||||
- **zstd: v3/v4 NO pagan — CORTADO de la lista.** Bench interno (`-b3 -i7`, estable):
|
||||
base 144.2 vs v4 146.5 MB/s comprimiendo, 702 vs 692 descomprimiendo = ruido. Causa
|
||||
conocida: zstd ya hace dispatch BMI2/AVX2 en **runtime** ⇒ el `-march` del build casi no
|
||||
toca los kernels calientes. (Un +24% aparente de v4 en la 1ª tanda desapareció con i7:
|
||||
era calentamiento — lección para T6: sólo benchs con control de varianza.)
|
||||
- **zlib (madler): INCONCLUSO en laptop con carga** (el mismo binario base osciló 112–157
|
||||
MB/s entre tandas). Pero la pregunta estaba mal hecha: la respuesta buena no es una
|
||||
variante v3 de zlib sino **zlib-ng** (fork con SIMD y dispatch en runtime, drop-in ABI;
|
||||
Fedora 40 ya lo adoptó como zlib del sistema) ⇒ un solo artefacto, cero maquinaria de
|
||||
variantes. Candidato a receta; medir zlib-ng vs zlib en máquina quieta cuando toque.
|
||||
- **Consecuencia estructural**: los compresores modernos ya resuelven esto con dispatch
|
||||
interno ⇒ la lista caliente de variantes se concentra donde NO hay dispatch: **mesa**
|
||||
(llvmpipe/ACO compilan según -march) y códecs sin runtime-detect. El mecanismo T1–T4
|
||||
sigue válido pero su primer cliente real es mesa, no la dupla zlib/zstd.
|
||||
- **T6 — regla de admisión**: una lib entra a la lista caliente con benchmark que lo
|
||||
justifique, no por vibras. La lista vive en el repo junto a los números.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user