Portada · Últimas noticias · llama.cpp corrige en Metal el tratamiento de valores infinitos fuera de una matriz triangular

Pieza propia de Signalia

llama.cpp corrige en Metal el tratamiento de valores infinitos fuera de una matriz triangular

La preversión b12220 de llama.cpp incorpora un cambio en el backend Metal para seleccionar cero fuera de una matriz triangular en vez de multiplicar por una comparación 0/1. El ajuste evita que valores +∞ o −∞ descartados se conviertan en…

InfraestructuraSignalia09 Nov 2026 · 13:19 CET
Ver últimas noticiasExplorar edición

Artículo original elaborado a partir de la preversión y del cambio técnico público del proyecto llama.cpp.

llama.cpp ha publicado la preversión b12220 con una corrección dirigida al backend Metal: la operación ggml_tri deja de conservar la parte válida de una matriz triangular multiplicando cada valor por una comparación 0/1 y pasa a elegir explícitamente el valor o un cero. La diferencia parece interna, pero trata un caso numérico concreto. De acuerdo con el cambio #30711, si una celda que debe descartarse contiene +∞ o −∞, multiplicarla por cero puede devolver NaN; los kernels de CPU y Vulkan ya escribían un cero directo fuera del triángulo.

El parche alinea el comportamiento de Metal con esa semántica de descarte y añade una prueba llamada test_tri_special. La prueba coloca valores infinitos en las celdas que deben quedar fuera para los cuatro tipos de triángulo y distingue el resultado anterior del nuevo. El autor informa de que los conjuntos de pruebas de la operación TRI pasaron en CPU y Vulkan. También deja una limitación explícita: no ejecutó la validación sobre Metal ni sobre los demás backends, de modo que la corrección no debe leerse como una certificación transversal de todas las rutas de ejecución.

La lectura práctica de Signalia es que esta entrega importa sobre todo a quienes compilan llama.cpp con Metal en equipos Apple y trabajan con cargas que alcanzan estas operaciones internas. No anuncia una mejora general de velocidad ni de calidad del modelo; reduce una discrepancia numérica posible al descartar elementos triangulares. Como b12220 es una preversión, la vía prudente es probarla con los modelos, contextos y versiones de macOS reales del despliegue, y contrastar estabilidad y resultados antes de sustituir una compilación ya validada en producción.

Más señales relacionadas

Fuentes consultadas