EulerNPU

Pila de Sintesis y Simulacion de Inferencia NPU

123 operadores (13 grupos), 10 tipos de datos, pipeline de compilacion spec.yaml a .npuart, y runtime FPGA Zynq-7020 — una sola CLI cubre todo el flujo de desarrollo de hardware de inferencia NPU.

Open Source

123 Operadores & 10 Tipos de Datos

Conjunto completo de operadores que cubre CNN, Transformer, RNN, cuantizacion y todos los escenarios de inferencia

13 Grupos de Operadores

Core MatMul, Gemm, Reshape, Transpose, Concat, Split, Gather, etc.
Conv Conv2D, DepthwiseConv2D, ConvTranspose2D, GroupConv2D
Pool MaxPool, AvgPool, GlobalAvgPool, AdaptiveAvgPool
Activation ReLU, GELU, SiLU, Sigmoid, Softmax, Tanh, etc.
Norm BatchNorm, LayerNorm, GroupNorm, RMSNorm, InstanceNorm
Recurrent LSTM, GRU, RNN
Attention MultiHeadAttention, ScaledDotProduct, KVCache, RoPE
Quantize Quantize, Dequantize, QLinearConv, QLinearMatMul

10 Tipos de Datos

Punto Flotante float32, float16, bfloat16
Entero con Signo int8, int16, int32
Entero sin Signo uint8, uint16, uint32
Booleano bool

La matriz de capacidades define los tipos de datos soportados y las restricciones de hardware para cada operador. El compilador verifica automaticamente la compatibilidad antes de compilar.

Pipeline de Compilacion

Desde la especificacion YAML hasta el archivo .npuart desplegable

spec.yaml → IR → .npuart

El archivo de especificacion YAML declarativo se valida, transforma a IR y optimiza antes de compilarse al formato .npuart (NPU Archive).

Entrada spec.yaml — definicion declarativa del grafo computacional
Validacion Compatibilidad de operadores, tipos de datos, inferencia de formas
IR Representacion intermedia — optimizacion de grafos, fusion de operadores
Salida Binario .npuart — cargable directamente en el runtime

Runtime

Los archivos .npuart compilados se pueden ejecutar en el simulador o en hardware FPGA Zynq-7020.

Simulador Simulacion con precision de ciclo, soporte de analisis de rendimiento
FPGA Runtime Zynq-7020 AXI-Lite MMIO
Perfilado Latencia por capa, ancho de banda de memoria, reporte de utilizacion

Referencia CLI

Unico punto de entrada eulernpu — 5 subcomandos para el flujo de trabajo completo

validate

Valida la compatibilidad de operadores, tipos de datos y restricciones de forma en spec.yaml.

compile

Compila spec.yaml a un binario .npuart.

run

Ejecuta archivos .npuart en el simulador o FPGA.

sim

Simulacion con precision de ciclo para analizar el comportamiento de ejecucion.

profile

Analisis de rendimiento por capa, genera reportes de latencia y memoria.

Principios de Diseno

Filosofia central de diseno de EulerNPU

Declarativo Primero

Archivos de especificacion YAML definen el grafo computacional — sin necesidad de codigo de bajo nivel, el compilador maneja todas las optimizaciones.

Validacion Pre-Compilacion

La matriz de capacidades verifica tipos de datos y restricciones de hardware de cada operador antes de compilar, previniendo errores en tiempo de ejecucion.

Simulacion Primero

Verifique la correctitud y el rendimiento con el simulador de precision de ciclo antes de desplegar en FPGA.

Tutoriales

Aprenda EulerNPU rapidamente con guias paso a paso

Tutoriales proximamente.

Instalacion y Primeros Pasos

Instale EulerNPU y compile su primer modelo

Instalacion

pip install -e ".[dev]"

# Validar y compilar
eulernpu validate spec.yaml
eulernpu compile spec.yaml -o model.npuart

Requisitos

Python 3.12+

Placa de desarrollo Zynq-7020 (despliegue FPGA)

Comience el desarrollo de inferencia NPU con EulerNPU

Desde especificacion YAML hasta despliegue FPGA, con una sola CLI.

Comenzar en GitHub Contactenos