6 repositorios
Implementations of operator kernels for ML inference, distinct from OS kernel drivers.
Distinct from Kernel Driver Implementation: Distinct from Kernel Driver Implementation: focuses on ML operator kernels, not OS device drivers.
Explore 6 awesome GitHub repositories matching operating systems & systems programming · Operator Kernel Implementations. Refine with filters or upvote what's useful.
Flashlight es una biblioteca de aprendizaje automático y de tensores independiente en C++ utilizada para construir y entrenar redes neuronales. Funciona como un framework integral de redes neuronales y motor de diferenciación automática, proporcionando las herramientas para construir grafos de computación y calcular gradientes mediante retropropagación. El proyecto sirve como framework de entrenamiento distribuido, utilizando operaciones all-reduce para sincronizar gradientes y parámetros a través de múltiples nodos de cómputo y dispositivos. Se distingue por una integración profunda de manipulación de tensores de alto rendimiento, interoperabilidad nativa de memoria de dispositivo y un sistema para sincronizar pesos a través de trabajadores distribuidos para acelerar el entrenamiento de modelos a gran escala. El framework cubre una amplia gama de capacidades de aprendizaje profundo, incluyendo composición modular de capas para diseñar arquitecturas complejas como bloques residuales y celdas recurrentes. Proporciona utilidades extensas de gestión de datos para ingesta y prefetching, junto con sistemas de serialización para persistir estados de modelos. Además, incluye una suite de herramientas de monitorización y observabilidad para rastrear métricas de entrenamiento y medir errores de secuencia. La biblioteca está implementada en C++.
Enables custom GPU kernels to operate on raw tensor memory addresses for high-performance mathematical operations.
NCCL es una biblioteca de comunicación de alto rendimiento y un framework de computación distribuida en GPU diseñado para ejecutar intercambios de datos colectivos y punto a punto a través de múltiples GPUs en sistemas de uno o varios nodos. Sirve como capa de transporte RDMA para GPU y orquestador de memoria, facilitando la sincronización de gran ancho de banda de datos y gradientes de modelos para el entrenamiento e inferencia distribuida en GPU. La biblioteca se distingue por su capacidad para ejecutar primitivas de comunicación directamente desde kernels de GPU, eliminando la CPU anfitriona del camino crítico. Utiliza la selección de rutas consciente de la topología para optimizar el movimiento de datos y emplea transporte de red basado en RDMA, incluyendo InfiniBand y NVLink, para permitir el acceso a memoria de copia cero entre dispositivos a través de diferentes nodos físicos. El proyecto cubre una amplia gama de patrones de comunicación colectiva, incluyendo reducciones, broadcasts, gathers e intercambios all-to-all, junto con acceso remoto a memoria punto a punto. Proporciona una gestión integral de comunicadores para inicializar, particionar y redimensionar grupos de GPU, así como una gestión de memoria especializada para registrar buffers y coordinar memoria compartida de dispositivo. El sistema incluye un conjunto de herramientas de monitoreo y observabilidad para el seguimiento de la salud, registro de diagnósticos y monitoreo de eventos en tiempo real, así como interfaces de integración para frameworks de aprendizaje automático, CUDA graphs, MPI y Python.
Implements direct access to raw memory addresses for high-performance GPU kernel communication.
Tengine es una suite de herramientas y un motor de ejecución ligero diseñado para ejecutar modelos de aprendizaje profundo en hardware embebido con recursos limitados. Proporciona una infraestructura para convertir modelos de redes neuronales, cuantizar pesos, optimizar kernels de operadores y realizar benchmarking del rendimiento de inferencia a través de unidades CPU, GPU y NPU. El proyecto cuenta con un optimizador de kernels de operadores automatizado para generar kernels de alta eficiencia y una herramienta de cuantización de modelos que reduce la precisión a formatos enteros para disminuir el uso de memoria. Incluye una herramienta dedicada de benchmarking de hardware para evaluar la velocidad de ejecución y la eficiencia de arquitecturas de redes neuronales en dispositivos embebidos. El sistema cubre la conversión de formatos de modelos a una representación interna agnóstica del hardware, despacho modular de operadores y ejecución multi-backend. Estas capacidades permiten la transformación de definiciones externas de redes neuronales en un formato de ejecución compatible para despliegue embebido.
Provides an automated optimizer to generate high-efficiency operator kernels for targeted hardware architectures.
ExecuTorch is a lightweight C++ runtime for deploying PyTorch models on mobile, embedded, and edge hardware. It provides an ahead-of-time compilation pipeline that exports, quantizes, and lowers model graphs into compact serialized programs, then executes them through a minimal runtime with hardware acceleration and on-device large language model inference capabilities. The project distinguishes itself through a hardware accelerator delegate system that partitions model subgraphs and offloads computation to specialized backends including NPUs, GPUs, and DSPs from Apple, Arm, Intel, MediaTek,
ExecuTorch adds or replaces operator implementations in the kernel library to support specialized hardware or logic.
Este proyecto es una traducción al chino de las guías técnicas y referencias de API para el framework de aprendizaje profundo PyTorch. Sirve como una base de conocimientos localizada y material de referencia para hacer que la documentación de aprendizaje profundo sea accesible para hablantes no angloparlantes. La documentación cubre una gama completa de capacidades de PyTorch, incluyendo el desarrollo de modelos de redes neuronales, diferenciación automática y la implementación de kernels de backend. Proporciona orientación detallada sobre estrategias de entrenamiento distribuido, despliegue de modelos a través de formatos como ONNX y C++, y diversas técnicas de optimización y cuantización de modelos. El proyecto utiliza un pipeline de traducción impulsado por la comunidad y un modelo de contribución distribuido para mantener el contenido sincronizado con las versiones. Los materiales técnicos se organizan utilizando markdown y se renderizan en un sitio web navegable mediante generación de sitios estáticos.
Describes the registration of high-performance operator kernels and mixed precision implementations.
NuttX is a POSIX-compliant real-time operating system designed for microcontrollers ranging from 8-bit to 64-bit architectures. It provides a deterministic execution environment with a real-time task scheduler and a POSIX embedded kernel to ensure portable code execution across diverse hardware targets. The project distinguishes itself through a comprehensive hardware abstraction layer that provides standardized drivers for I2C, SPI, CAN, and USB across various semiconductor chipsets. It also features an embedded networking stack supporting TCP, UDP, IPv4, and IPv6, alongside industrial proto
Automates the creation of kernel proxy and stub files using a CSV database to facilitate user-mode and kernel communication.