Una plataforma, 1.930 algoritmos, todos los backends: así construimos la pila completa para IA discreta
El problema de la fragmentación
Tu entorno de desarrollo de IA está fragmentado.
Prototipas en PyTorch porque los investigadores lo prefieren. Despliegas con TensorFlow porque los equipos de producción quieren las herramientas de Google. Escribes kernels de CUDA para GPUs de NVIDIA. Migras a ROCm para hardware de AMD. Lo reescribes todo para móvil con TensorFlow Lite o Core ML. Usas ONNX para convertir entre frameworks, con la esperanza de que nada se rompa. Mantienes bases de código separadas para despliegue en la nube, en el edge y en el navegador.
Diez herramientas distintas. Miles de dependencias. Pesadillas de compatibilidad de versiones. Cambios que rompen todo en cada ciclo de lanzamiento.
¿Actualizar PyTorch? Espera que tu versión de CUDA coincida. ¿Quieres desplegar en AMD? Reescribe tus kernels. ¿Necesitas inferencia en el navegador? Empieza de cero con WebAssembly. ¿Cambiar de GPUs NVIDIA a AMD? Buena suerte migrando esa base de código. ¿Desplegar en FPGAs? Aprende un toolchain completamente distinto.
Esta fragmentación no es un accidente. Es el resultado natural de que cada framework se optimice para su caso de uso específico ignorando la interoperabilidad. PyTorch sobresale en investigación, pero trata el despliegue como una ocurrencia tardía. TensorFlow apunta a producción, pero la experiencia de investigación es dolorosa. CUDA te encierra en hardware de NVIDIA. Cada herramienta resuelve un problema mientras crea tres más.
Hay una mejor manera.
Dweve Core: la plataforma completa para IA discreta
Dweve Core es una plataforma unificada para construir redes neuronales discretas con precisión de binaria a 8 bits. No es otro framework. Es un reemplazo completo para tu stack fragmentado.
Una instalación. Una API. Una base de código. Despliegue automático a CPU, GPU, FPGA, WebAssembly, donde sea que necesites ejecutar.
Esto es lo que significa completo:
1.930 algoritmos que cubren cada operación que necesitas:
- 415 primitivas: operaciones atómicas como XNOR, popcount, manipulación de bits, cuantización, conversión entre formatos
- 500 kernels: operaciones compuestas optimizadas para patrones comunes
- 191 capas: bloques de construcción completos de redes neuronales (convolución, densa, normalización, activación, atención)
- 674 algoritmos: métodos de alto nivel que incluyen transformaciones, procedimientos de entrenamiento, búsqueda evolutiva, destilación de conocimiento
- 30 utilidades de interoperabilidad: puentes opcionales de coma flotante para enfoques híbridos
- 120 arquitecturas de modelos: plantillas de red preoptimizadas, desde ResNets hasta Transformers
Esto no es un subconjunto. Es completitud matemática. Analizamos cada arquitectura importante de redes neuronales y construimos cada operación que requieren, optimizada para cómputo discreto desde primeros principios.
6 backends con compilación automática:
- SIMD CPU: kernels optimizados a mano para x86 y ARM con detección automática de ISA (SSE2, AVX2, AVX-512, NEON, SVE/SVE2)
- CUDA: optimización para GPUs de NVIDIA con primitivas a nivel de warp y utilización de Tensor Core
- Rust-HDL: síntesis directa de FPGA y ASIC a partir de descripciones de algoritmos
- WebAssembly: inferencia en el navegador con soporte SIMD128 para procesamiento en el dispositivo conforme al RGPD
- ROCm: optimización para GPUs de AMD con operaciones a nivel de wavefront
- Metal: optimización para Apple Silicon usando arquitectura de memoria unificada
6 anchos de bits con precisión adaptativa:
- Binario (1 bit): Máxima eficiencia con compresión 16× frente a FP16
- Ternario: {-1, 0, +1} con dispersión explícita
- 2 bits: Cuatro niveles para una compresión equilibrada
- 3 bits: Ocho niveles para capas sensibles a la calidad
- 4 bits: Dieciséis niveles que se acercan a la calidad de FP16
- 8 bits: Precisión casi completa para operaciones críticas
La plataforma aprende el ancho de bits óptimo por capa durante el entrenamiento mediante selección basada en gradientes. No heurísticas. No conjeturas. Optimización real basada en cómo mejora la precisión al añadir más precisión.
Escríbelo una vez, despliégalo en cualquier lugar
La plataforma utiliza una API declarativa en Rust. Tú describes lo que quieres y el compilador determina cómo ejecutarlo de forma óptima en tu hardware objetivo.
Ejemplo de definición de red:
let model = NetworkBuilder::new()
.input(BinaryTensor::new([1024, 784]))
.dense(784, 512, activation=BinaryActivation::Sign)
.dense(512, 256, activation=BinaryActivation::Sign)
.output(256, 10)
.build();
Eso es todo. Escríbelo una vez y el compilador genera automáticamente implementaciones optimizadas para cada backend.
El proceso de compilación funciona en cuatro niveles:
Nivel 1: IR de red neuronal - Tu descripción de red de alto nivel se analiza y se convierte en un grafo computacional con operaciones, flujo de datos e hiperparámetros.
Nivel 2: Optimización de grafos - Las pasadas estándar del compilador eliminan código muerto, pliegan constantes, deduplican expresiones y fusionan operaciones secuenciales. Una capa densa seguida de normalización por lotes y activación se convierte en un único kernel fusionado que carga la entrada una sola vez y produce la salida final.
Nivel 3: Dialecto BitOps - El grafo se reduce a operaciones a nivel de bit tipadas explícitamente con precisión. Esta representación intermedia es independiente del hardware, pero está cerca de las operaciones reales de la máquina. Está construida sobre la infraestructura MLIR (Representación Intermedia Multinivel) para una optimización de nivel industrial.
Nivel 4: Reducción a hardware - La generación final de código produce implementaciones específicas para cada plataforma. Para AVX-512, las operaciones de bits se convierten en instrucciones VPXORQ y VPOPCNTQ. Para CUDA, se convierten en intrínsecos a nivel de warp con acceso a memoria coalescente. Para FPGA, se convierten en puertas XNOR y árboles de sumadores sintetizados en Verilog.
El mismo código fuente se ejecuta en la CPU de tu portátil durante el desarrollo, se despliega en GPUs en la nube en producción y se compila para FPGAs para inferencia en tiempo real determinista. Sin traducción. Sin portabilidad. Sin código específico de plataforma.
Diseñado para que los clientes creen con él
Dweve Core impulsa Dweve Loom, nuestro sistema de razonamiento basado en restricciones. Pero no es solo para nosotros. Es una plataforma completa para cualquiera que construya redes neuronales discretas.
Puedes crear:
- Arquitecturas personalizadas con los 191 tipos de capa y los 674 algoritmos
- Modelos específicos de dominio optimizados para tus requisitos exactos
- Enfoques híbridos que combinan computación discreta y continua mediante las 30 utilidades de interoperabilidad
- Métodos de entrenamiento novedosos con búsqueda evolutiva, destilación de conocimiento o estimadores de gradiente personalizados
La plataforma ofrece:
Infraestructura de entrenamiento completa: Seis variantes de estimador de paso directo para el flujo de gradiente binario/ternario. Optimizadores conscientes de binarización que mantienen pesos de precisión completa internamente mientras binarizan para los pases hacia adelante. Selección automática del ancho de bits mediante optimización basada en gradientes. Destilación progresiva en varias etapas desde FP32 hasta INT8, INT4, ternario y binario.
Optimización automática de hardware: Detección en tiempo de ejecución de las capacidades de la CPU (CPUID en x86, registros del sistema en ARM) y despacho automático a la implementación SIMD más rápida disponible. Variantes de kernel de GPU seleccionadas según el tamaño de warp, la memoria compartida y el número de registros. Síntesis FPGA con inserción automática de registros de pipeline según las restricciones de temporización.
Cuantización flexible: Cuantización simétrica y asimétrica con escalas por tensor, por canal o por grupo. Cuantización dinámica con detección de rango en tiempo de ejecución o cuantización estática con escalas precalculadas a partir de datos de calibración. Cálculo de escalas basado en error cuadrático medio y divergencia KL para una pérdida de precisión mínima.
Por qué importa la computación discreta
Las redes neuronales tradicionales calculan todo en coma flotante de 16 o 32 bits y toman decisiones discretas solo al final. Nosotros operamos directamente en el espacio discreto, desde binario hasta 8 bits, eliminando la computación continua intermedia.
Esto no es una simple cuantización de modelos existentes. El framework está diseñado desde los primeros principios en torno a operaciones discretas:
La realidad del hardware: Los procesadores modernos constan de miles de millones de transistores en dos estados. Una puerta XNOR requiere 6 transistores. Un multiplicador de coma flotante de 32 bits requiere miles y consume órdenes de magnitud más energía. Las operaciones discretas se alinean con los fundamentos del hardware.
Eficiencia de memoria: Los pesos binarios empaquetan 64 valores por palabra de 64 bits. Un ResNet-50 con 25,6 millones de parámetros ocupa 3,1 MB en binario frente a 50 MB en FP16. El modelo completo cabe en la caché L3 de la CPU (típicamente: 36-64 MB). Pasas de estar limitado por memoria a estarlo por cómputo.
Flexibilidad de despliegue: Los modelos pequeños permiten inferencia en el dispositivo. Sin dependencia de la nube. Sin latencia de red. Sin problemas de privacidad de datos. Procesa información sensible íntegramente en los dispositivos del usuario sin transmitirla nunca a servidores.
La matriz completa de algoritmos
La plataforma ofrece una cobertura integral en tres dimensiones: algoritmos, backends y anchos de bit.
Operaciones fundamentales (415 primitivas):
- 46 operaciones de bits: puertas lógicas, manipulación, desplazamientos, conteo, búsqueda
- 16 operaciones de campo: extracción, depósito, empaquetado, dispersión, recopilación, creación de máscaras
- 25 reducciones: AND/OR/XOR lógicos, suma/producto aritméticos, votación y consenso
- 17 métricas de distancia: Hamming, Jaccard, Dice, Tanimoto, coseno, Manhattan, Euclidiana
- 12 operaciones de intercalado: intercalado de 2 a 4 vías, curvas de relleno de espacio de Morton y Hilbert
- 44 operaciones aritméticas: suma, resta, multiplicación, división, operaciones de punto fijo
- 39 transformadas: Walsh-Hadamard, FFT, DCT, NTT, wavelets (Haar, Daubechies, CDF97)
- 11 funciones hash: SHA-256, Blake3, xxHash, MinHash, SimHash, hash sensible a la localidad
- 22 generación de números aleatorios: LFSR, Mersenne Twister, ChaCha20, secuencias de Sobol
- 15 cuantización: simétrica, asimétrica, por tensor, por canal, cálculo de escala
- 30 matemáticas binarias: XNOR-popcount, codificación ternaria, actualizaciones de pesos, operaciones de gradiente
- 48 conversiones de formato: conversiones FP32/FP16/FP8/INT8/INT4/INT2 en todas las direcciones
- 42 operaciones de punto fijo: aritmética, trascendentales, saturación en todos los anchos de bit
Operaciones compuestas (500 kernels):
Kernels optimizados que combinan primitivas para patrones comunes. Variantes de multiplicación de matrices (estándar, transpuesta, por bloques). Tipos de convolución (2D, 3D, por profundidad, agrupada, dilatada). Normalización (por lotes, por capa, por grupo, por instancia). Funciones de activación (signo, tanh dura, lineal por tramos). Mecanismos de atención (autoatención, atención cruzada, multi-cabeza). Agrupación (máximo, promedio, estocástica).
Capas de red (191 capas):
Bloques de construcción completos para construir redes. Capas densas con pesos binarios, ternarios y de múltiples bits. Capas convolucionales con todas las variantes comunes. Capas recurrentes (LSTM, GRU con puertas binarias). Capas de atención (producto escalar escalado, multi-cabeza, posición relativa). Capas de normalización con estadísticas de lote y parámetros aprendidos. Conexiones residuales con coincidencia de dimensiones.
Algoritmos de alto nivel (674 algoritmos):
Métodos completos para entrenamiento, inferencia y optimización. Destilación de conocimiento con refinamiento progresivo en múltiples etapas. Descubrimiento de restricciones evolutivo con programación genética. Búsqueda de arquitectura neuronal para redes discretas. Estimadores de gradiente (de paso directo, recortado, adaptativo, con momento, hiperred). Optimizadores (BinaryAdam, TernaryAdam, cuantización adaptativa). Entrenamiento distribuido con agregación robusta a fallos bizantinos.
Profundidad de implementación del backend
Cada algoritmo existe en múltiples variantes optimizadas por backend. No implementaciones genéricas. Código específico del hardware que aprovecha cada característica arquitectónica.
SIMD de CPU: SSE2 proporciona compatibilidad universal con x86-64 (todos los procesadores desde 2001). AVX2 ofrece una aceleración de 4-8× en Haswell y posteriores (2013+). AVX-512 alcanza 10-16× con registros de máscara para predicación y VPTERNLOG para cualquier función booleana de 3 entradas. NEON aporta una aceleración de 3-4× a todos los procesadores ARMv8, incluidos los móviles y Apple Silicon. SVE/SVE2 proporciona código independiente de la longitud del vector que utiliza automáticamente vectores más anchos en hardware más nuevo.
CUDA: Las primitivas a nivel de warp organizan 32 subprocesos que se ejecutan en bloque. Cada subproceso procesa 32 valores binarios empaquetados en uint32. Un warp completo procesa 1.024 valores binarios en paralelo. Las intrínsecas de hardware incluyen __popc para el recuento de población, __ballot_sync para la votación de warp y __shfl_sync para la comunicación rápida sin memoria compartida. El acceso a memoria coalescente garantiza la utilización del ancho de banda. La utilización de Tensor Core para operaciones matriciales incluso con datos binarios.
Rust-HDL: Síntesis de hardware directa a partir de código Rust anotado. El framework genera Verilog/VHDL automáticamente. Las operaciones binarias XNOR-popcount se asignan a puertas XNOR (lógica combinatoria, retardo de propagación cero) más árboles de sumadores. Los registros de pipeline se insertan automáticamente según las restricciones de temporización. Sintetiza tanto en FPGA (Xilinx, Intel) como en ASIC.
WebAssembly: SIMD128 proporciona operaciones vectoriales de 128 bits en todos los navegadores modernos (Chrome 91+, Firefox 89+, Safari 16.4+). Las operaciones incluyen v128.and/or/xor para lógica bit a bit e i8x16.popcnt para el recuento de población. Combinado con Web Workers para el multiproceso y SharedArrayBuffer para la memoria compartida, alcanza el 60-80% del rendimiento nativo de la CPU. La inferencia en el navegador en el dispositivo permite un procesamiento conforme al RGPD sin cargas al servidor.
ROCm: Optimización a nivel de wavefront para arquitecturas AMD con 64 subprocesos por wavefront (el doble que los 32 de NVIDIA). Cada subproceso procesa 32 valores binarios, es decir, 2.048 valores por wavefront. Intrínsecas similares a las de CUDA con __builtin_popcount, __ballot y ds_swizzle. El modelo de programación es lo bastante parecido como para que los desarrolladores de CUDA puedan escribir código ROCm de inmediato.
Metal: Optimización para Apple Silicon mediante una arquitectura de memoria unificada en la que la CPU y la GPU comparten RAM física con coherencia de caché. Elimina la sobrecarga de copia de datos. Las operaciones binarias aprovechan los motores matriciales personalizados de Apple. El Neural Engine del M3 Max ofrece 50-80 TOPS en inferencia binaria mediante aceleradores dedicados integrados en el SoC.
Lo que no hacemos (y por qué la concentración importa)
Es importante aclararlo: no hacemos de todo. La concentración permite la excelencia.
Sin inferencia de coma flotante: Solo cómputo discreto de binario a 8 bits. Si necesitas FP32/FP16/BFloat16 para el despliegue, usa PyTorch o JAX. Optimizamos exclusivamente para operaciones discretas, lo que permite especializaciones imposibles con coma flotante de precisión mixta. No puedes ser excelente en todo. Elegimos la IA discreta y optimizamos sin piedad.
Sin grafos de inferencia dinámicos: Los modelos se compilan en grafos estáticos para el despliegue. El entrenamiento admite cómputo dinámico (necesario para la flexibilidad en la investigación), pero la inferencia en producción es estática. Esto permite la optimización anticipada: fusión de kernels en toda la red, optimización del diseño de memoria con formas de tensor conocidas e inserción de instrucciones de prefetch con patrones de acceso predecibles.
Preprocesamiento de datos centrado: Proporcionamos 8 algoritmos especializados para la preparación de entradas de redes neuronales (normalización, escalado adaptativo, cuantización aprendida, aumento binario), no ETL de propósito general. Para los pipelines de ingeniería de características y la carga de datos, usa las herramientas existentes (Pandas, Polars, DuckDB). Somos excelentes en la inferencia de redes neuronales discretas de binario a 8 bits. No estamos reemplazando toda tu pila de datos.
Estas no son limitaciones. Son concentración. Al restringir el alcance a redes neuronales discretas con grafos de inferencia estáticos, logramos una profundidad de optimización que los frameworks integrales no pueden igualar.
Desarrollo con Dweve Core
La plataforma está lista para usar. Puedes empezar a crear redes neuronales discretas hoy mismo.
Toolchain completa:
- API declarativa: DSL de Rust con NetworkBuilder para la definición de modelos
- Infraestructura de compilación: pipeline de optimización basado en MLIR con cuatro niveles de IR
- Marco de entrenamiento: seis variantes de STE, optimizadores conscientes de binario, selección automática de ancho de bits
- Generadores de código de backend: C con intrínsecos para CPU, kernels CUDA/HIP para GPU, Verilog para FPGA
- Herramientas de despliegue: exportación a ONNX, Core ML, TensorFlow Lite o binarios independientes
Ejemplo de flujo de trabajo:
1. Define tu red con NetworkBuilder
2. Entrena con optimizadores conscientes de binario y selección adaptativa de ancho de bits
3. Compila para el hardware objetivo con selección automática de backend
4. Despliega como binario optimizado o exporta a un formato estándar
5. Ejecuta en cualquier lugar: servidores en la nube, dispositivos periféricos, navegadores, FPGAs
Una plataforma. Un código base. Todos los backends. IA discreta completa.
Deja de gestionar diez marcos de trabajo. Deja de reescribir código para cada objetivo de despliegue. Deja de luchar contra la compatibilidad de versiones. Construye una vez con Dweve Core y despliega en todas partes.
Dweve Core impulsa Dweve Loom, nuestro sistema de razonamiento basado en restricciones que se lanzará en 2026. El marco implementa la pila completa de 1.930 algoritmos en 6 backends con cuantización adaptativa multibit de binario a 8 bits. Desarrollado por un equipo de ingeniería neerlandés durante tres años de trabajo.