6 Repos
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 ist eine eigenständige C++-Bibliothek für maschinelles Lernen und Tensor-Berechnungen, die zum Erstellen und Trainieren neuronaler Netze verwendet wird. Sie fungiert als umfassendes Framework für neuronale Netze und Engine für automatische Differenzierung und bietet Werkzeuge zur Konstruktion von Berechnungsgraphen und zur Berechnung von Gradienten via Backpropagation. Das Projekt dient als Framework für verteiltes Training und nutzt All-Reduce-Operationen zur Synchronisation von Gradienten und Parametern über mehrere Rechenknoten und Geräte hinweg. Es zeichnet sich durch eine tiefe Integration von leistungsstarker Tensor-Manipulation, nativer Interoperabilität mit Gerätespeichern und einem System zur Synchronisation von Gewichten über verteilte Worker aus, um das Training großskaliger Modelle zu beschleunigen. Das Framework deckt eine breite Palette an Deep-Learning-Funktionen ab, einschließlich modularer Schichtkomposition für den Entwurf komplexer Architekturen wie Residual-Blöcke und rekurrente Zellen. Es bietet umfangreiche Datenmanagement-Utilities für Ingestion und Prefetching sowie Serialisierungssysteme zur Persistierung von Modellzuständen. Zusätzlich enthält es eine Suite an Überwachungs- und Observability-Tools zur Verfolgung von Trainingsmetriken und zur Messung von Sequenzfehlern. Die Bibliothek ist in C++ implementiert.
Enables custom GPU kernels to operate on raw tensor memory addresses for high-performance mathematical operations.
NCCL ist eine Hochleistungs-Kommunikationsbibliothek und ein Framework für verteiltes GPU-Computing, das für die Ausführung kollektiver und Punkt-zu-Punkt-Datenaustausche über mehrere GPUs in Einzel- oder Multi-Node-Systemen entwickelt wurde. Es dient als RDMA-GPU-Transportschicht und Speicher-Orchestrator, der die hochbandbreitige Synchronisation von Daten und Modellgradienten für verteiltes GPU-Training und Inference erleichtert. Die Bibliothek zeichnet sich durch ihre Fähigkeit aus, Kommunikationsprimitive direkt aus GPU-Kernels auszuführen, wodurch die Host-CPU aus dem kritischen Pfad entfernt wird. Sie nutzt topologiebewusste Pfadauswahl zur Optimierung der Datenbewegung und verwendet RDMA-basierten Netzwerktransport, einschließlich InfiniBand und NVLink, um Zero-Copy-Speicherzugriffe zwischen Geräten über verschiedene physische Knoten hinweg zu ermöglichen. Das Projekt deckt eine breite Palette an kollektiven Kommunikationsmustern ab, darunter Reduktionen, Broadcasts, Gathers und All-to-All-Austausche, neben Punkt-zu-Punkt-Remote-Speicherzugriffen. Es bietet umfassendes Communicator-Management für die Initialisierung, Partitionierung und Größenanpassung von GPU-Gruppen sowie spezialisiertes Speichermanagement für das Registrieren von Buffern und das Koordinieren von gemeinsam genutztem Gerätespeicher. Das System enthält eine Suite von Monitoring- und Observability-Tools für Health-Tracking, diagnostisches Logging und Echtzeit-Ereignisüberwachung sowie Integrationsschnittstellen für Machine-Learning-Frameworks, CUDA-Graphs, MPI und Python.
Implements direct access to raw memory addresses for high-performance GPU kernel communication.
Tengine ist eine Suite von Tools und eine leichtgewichtige Execution-Engine für die Ausführung von Deep-Learning-Modellen auf eingeschränkter Embedded-Hardware. Sie bietet eine Infrastruktur zur Konvertierung neuronaler Netzwerkmodelle, zur Quantisierung von Gewichten, zur Optimierung von Operator-Kernels und zum Benchmarking der Inferenzleistung über CPU-, GPU- und NPU-Einheiten hinweg. Das Projekt zeichnet sich durch einen automatisierten Operator-Kernel-Optimierer zur Generierung hocheffizienter Kernels und ein Modell-Quantisierungstool aus, das die Präzision auf Integer-Formate reduziert, um den Speicherverbrauch zu senken. Es enthält ein dediziertes Hardware-Benchmarking-Tool zur Bewertung der Ausführungsgeschwindigkeit und Effizienz neuronaler Netzwerkarchitekturen auf Embedded-Geräten. Das System deckt die Modellformat-Konvertierung in eine hardware-agnostische interne Repräsentation, modulares Operator-Dispatching und Multi-Backend-Ausführung ab. Diese Funktionen ermöglichen die Transformation externer neuronaler Netzwerkdefinitionen in ein kompatibles Laufzeitformat für das Embedded-Deployment.
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.
Dieses Projekt ist eine chinesische Übersetzung der technischen Handbücher und API-Referenzen für das PyTorch Deep-Learning-Framework. Es dient als lokalisierte Wissensdatenbank und Referenzmaterial, um die Deep-Learning-Dokumentation für nicht-englischsprachige Nutzer zugänglich zu machen. Die Dokumentation deckt ein umfassendes Spektrum an PyTorch-Funktionen ab, einschließlich der Entwicklung neuronaler Netzwerkmodelle, automatischer Differenzierung und der Implementierung von Backend-Kernels. Sie bietet detaillierte Anleitungen zu verteilten Trainingsstrategien, Modellbereitstellung über Formate wie ONNX und C++ sowie verschiedene Techniken zur Modelloptimierung und Quantisierung. Das Projekt nutzt eine Community-gesteuerte Übersetzungspipeline und ein verteiltes Beitragsmodell, um versionierte Inhalte aktuell zu halten. Technische Materialien sind in Markdown organisiert und werden über Static Site Generation in eine navigierbare Website umgewandelt.
Describes the registration of high-performance operator kernels and mixed precision implementations.
NuttX ist ein POSIX-konformes Echtzeitbetriebssystem für Mikrocontroller, das von 8-Bit- bis 64-Bit-Architekturen reicht. Es bietet eine deterministische Ausführungsumgebung mit einem Echtzeit-Task-Scheduler und einem POSIX-Embedded-Kernel, um die Portabilität von Code über diverse Hardware-Ziele hinweg sicherzustellen. Das Projekt zeichnet sich durch eine umfassende Hardware-Abstraktionsschicht aus, die standardisierte Treiber für I2C, SPI, CAN und USB für verschiedene Halbleiter-Chipsätze bereitstellt. Es verfügt zudem über einen Embedded-Netzwerk-Stack mit Unterstützung für TCP, UDP, IPv4 und IPv6 sowie industrielle Protokolle wie Modbus und DroneCAN. Das System deckt ein breites Spektrum an Funktionen ab, einschließlich fortschrittlichem Speichermanagement mit On-Demand-Paging, sicheren kryptografischen Operationen und einem virtuellen Dateisystem zur Verwaltung unterschiedlicher Speichertypen. Es integriert zudem High-Level-Schnittstellen für grafische Benutzeroberflächen, Audiosynthese sowie die Ausführung mehrerer Skriptsprachen und WebAssembly-Workloads. Die Umgebung wird mittels Make oder CMake für spezifische Board-Konfigurationen und Halbleiter-Chipsätze erstellt.
Automates the creation of kernel proxy and stub files using a CSV database to facilitate user-mode and kernel communication.