Runtime de investigación para computadoras neurales diferenciables, emulación de CPU basada en GPU y síntesis de programas. Incluye ALU neuronal, criptografía en tiempo constante, modelos mundiales JEPA y un compilador C auto-hospedado en Metal.
Una computadora completa en la que cada capa (aritmética, sistema operativo, compilador, visualización) es una red neuronal entrenada o se ejecuta completamente en GPU.
El modelo no se ejecuta en la computadora. El modelo es la computadora.
nCPU es un repositorio que persigue una tesis desde cinco direcciones: una computadora puede construirse a partir de componentes aprendidos, y una vez que toda la pila de ejecución es diferenciable, los programas dejan de ser cosas que se escriben y se convierten en cosas que se pueden buscar mediante descenso por gradiente. Cada subsistema a continuación se sustenta en sus propias mediciones; juntos cubren la pila desde operaciones individuales de la ALU hasta un sistema operativo y síntesis de programas.
Cada operación de la ALU (suma, resta, multiplicación, lógica bit a bit, desplazamientos, división) es una red neuronal entrenada. El sistema operativo neuronal (neurOS) gestiona la memoria, planifica procesos y compila código a través de 11 modelos entrenados sin recurrir a implementaciones manuales. Una pantalla neuronal renderiza caracteres mediante MLP car→glifo y una ConvNet (143K parámetros). El pipeline completo (código fuente → compilador neuronal → ensamblador neuronal → CPU neuronal → pantalla neuronal) es diferenciable de extremo a extremo.
La ALU neuronal alcanza una precisión del 100% en aritmética de enteros de 32 bits, verificada exhaustivamente sobre todas las entradas posibles. Un resultado invierte la jerarquía hardware convencional: la multiplicación es 12 veces más rápida que la suma aquí, porque la suma necesita una cadena de acarreo de 8 pasos mientras que la multiplicación se descompone en búsquedas paralelas en tablas de pares de bytes.
| Instrucción | Estrategia | Latencia |
|---|---|---|
| ADD/SUB/CMP | Kogge-Stone carry-lookahead (8 pasos) | 248 µs |
| MUL | LUT de pares de bytes (65.536 entradas) | 21 µs |
| AND/OR/XOR | Tabla de verdad vectorizada | 21 µs |
| SHL/SHR | Enrutamiento de bits basado en atención | 434 µs |
| DIV | División restauradora (resta neuronal) | varía |
Precisión de los componentes de neurOS:
| Componente | Precisión | Componente | Precisión |
|---|---|---|---|
| MMU | 100% | Generación de código del ensamblador | 100% |
| TLB | 99.6% | Tokenizador del ensamblador | 99.4% |
| Caché | 99.7% | Optimizador del compilador | 95.2% |
| Planificador | 99.2% | Watchdog | 100% |
| Prefetch | 97.8% | Asignador de bloques | 98.4% |
Una computadora autosuficiente en una sola GPU (la CPU solo interviene en el arranque). El kernel Rust + Metal ejecuta unas 200 instrucciones ARM64 (enteros y punto flotante) a aproximadamente 1.9 millones de instrucciones por segundo, con memoria compartida de copia cero y varianza de conteo de ciclos cero entre ejecuciones (σ = 0.0).
Lo que se ejecuta en ella:
nSynth es un sistema de síntesis de programas basado en Rust que descubre programas ejecutables a partir de ejemplos de entrada/salida utilizando descenso por gradiente, enumeración y búsqueda. Combinado con un motor integral de ML/tensores y una pila web completa, permite la síntesis de:
Cobertura: 420/420 problemas de síntesis (Mog: 315/315, nSynth: 105/105)
Tres pilares:
cd nsynth
cargo run --release --bin nsynth_codegen --lang python --examples '{
"name":"reverse","signature":"fn reverse(arr: List<i64>) -> List<i64>",
"examples":[{"inputs":[[1,2,3]],"expected":[3,2,1]}]
}'
# → def reverse(arr): return arr[::-1]
La ALU neuronal inyectada en el pase hacia adelante de un transformador como un experto enrutado. Una puerta aprendida por token decide si cada token fluye a través del MLP original o a través de la ALU neuronal. Las tablas de verdad blandas bilineales proporcionan lógica diferenciable, las operaciones tensoriales proporcionan aritmética diferenciable, y el enrutamiento se modula por la confianza del modelo.
Resultados de un barrido de 11 modelos en las familias Qwen 2.5/3/3.5, en tareas aritméticas: