Fase 02 — Inferencia desde primeros principios
Esta fase abre la caja negra del runtime. Implementa suficiente maquinaria tensorial para mostrar cómo los pesos, layouts, aritmética, activaciones y error numérico se convierten en un resultado de inferencia, y después acelera la misma carga verificada.
Ramas
- Kernels tensoriales e inferencia desde cero — formas, strides, layouts, broadcasting, multiplicación de matrices, convolución, bias, activaciones, softmax, normalización, pesos y forward passes.
- SIMD, threads y workers — SIMD128, autovectorización, intrinsics, memoria compartida, atomics, Web Workers, aislamiento cross-origin, pools de workers y overhead paralelo.
Hitos del Workbench
v1 — Motor de inferencia pequeño: cargá pesos fijos y ejecutá un MLP pequeño usando tensores densos, multiplicación de matrices, bias, ReLU y softmax estable.
v2 — SIMD y paralelismo: compará el mismo kernel y fixture entre Wasm escalar, SIMD128 y un camino con threads/workers debidamente justificado.
Qué establece esta fase
- Contratos tensoriales con tipo de elemento, forma, strides y layout explícitos.
- Primitivas numéricamente estables verificadas contra una referencia independiente.
- Una implementación escalar que sigue siendo el baseline de corrección.
- Mediciones que separan el cómputo útil de las copias, scheduling y arranque de workers.
- Criterios honestos para los casos donde SIMD o threads no mejoran la carga.
Criterios de salida
- El motor pequeño reproduce logits o probabilidades golden dentro de una tolerancia documentada.
- Las variantes escalar, SIMD y con threads consumen las mismas entradas y semántica.
- Los reportes incluyen warm-up, p50/p95, throughput, memoria máxima, copias, tamaño del módulo y entorno.
- El aislamiento cross-origin y los caminos sin threads disponibles se prueban explícitamente.