6 dépôts
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 est une bibliothèque de machine learning et de tenseurs autonome en C++ utilisée pour construire et entraîner des réseaux de neurones. Elle fonctionne comme un framework complet de réseaux de neurones et un moteur de différenciation automatique, fournissant les outils pour construire des graphes de calcul et calculer les gradients via la rétropropagation. Le projet sert de framework d'entraînement distribué, utilisant des opérations all-reduce pour synchroniser les gradients et les paramètres sur plusieurs nœuds de calcul et appareils. Il se distingue par une intégration profonde de la manipulation de tenseurs haute performance, l'interopérabilité native de la mémoire des appareils et un système pour synchroniser les poids entre les workers distribués afin d'accélérer l'entraînement de modèles à grande échelle. Le framework couvre un large éventail de capacités de deep learning, incluant la composition modulaire de couches pour concevoir des architectures complexes comme des blocs résiduels et des cellules récurrentes. Il fournit des utilitaires étendus de gestion de données pour l'ingestion et le préchargement, ainsi que des systèmes de sérialisation pour persister les états de modèle. De plus, il inclut une suite d'outils de surveillance et d'observabilité pour suivre les métriques d'entraînement et mesurer les erreurs de séquence. La bibliothèque est implémentée en C++.
Enables custom GPU kernels to operate on raw tensor memory addresses for high-performance mathematical operations.
NCCL est une bibliothèque de communication haute performance et un framework de calcul GPU distribué conçu pour exécuter des échanges de données collectifs et point à point sur plusieurs GPU dans des systèmes à un ou plusieurs nœuds. Il sert de couche de transport GPU RDMA et d'orchestrateur de mémoire, facilitant la synchronisation à large bande passante des données et des gradients de modèle pour l'entraînement et l'inférence GPU distribués. La bibliothèque se distingue par sa capacité à exécuter des primitives de communication directement depuis les noyaux (kernels) GPU, supprimant le CPU hôte du chemin critique. Elle utilise une sélection de chemin consciente de la topologie pour optimiser le mouvement des données et emploie un transport réseau basé sur RDMA, incluant InfiniBand et NVLink, pour permettre un accès mémoire zéro-copie entre les appareils sur différents nœuds physiques. Le projet couvre un large éventail de modèles de communication collective, notamment les réductions, les diffusions (broadcasts), les rassemblements (gathers) et les échanges tous-à-tous, ainsi que l'accès mémoire distant point à point. Il fournit une gestion complète des communicateurs pour initialiser, partitionner et redimensionner les groupes GPU, ainsi qu'une gestion spécialisée de la mémoire pour enregistrer les tampons (buffers) et coordonner la mémoire partagée des appareils. Le système inclut une suite d'outils de surveillance et d'observabilité pour le suivi de la santé, la journalisation diagnostique et la surveillance des événements en temps réel, ainsi que des interfaces d'intégration pour les frameworks de machine learning, les graphes CUDA, MPI et Python.
Implements direct access to raw memory addresses for high-performance GPU kernel communication.
Tengine is a suite of tooling and a lightweight execution engine designed for running deep learning models on constrained embedded hardware. It provides an infrastructure for converting neural network models, quantizing weights, optimizing operator kernels, and benchmarking inference performance across CPU, GPU, and NPU units. The project features an automated operator kernel optimizer to generate high-efficiency kernels and a model quantization tool that reduces precision to integer formats to lower memory usage. It includes a dedicated hardware benchmarking tool to evaluate the execution sp
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.
This project is a Chinese language translation of the technical guides and API references for the PyTorch deep learning framework. It serves as a localized knowledge base and reference material to make deep learning documentation accessible to non-English speakers. The documentation covers a comprehensive range of PyTorch capabilities, including neural network model development, automatic differentiation, and the implementation of backend kernels. It provides detailed guidance on distributed training strategies, model deployment through formats like ONNX and C++, and various model optimizatio
Describes the registration of high-performance operator kernels and mixed precision implementations.
NuttX est un système d'exploitation temps réel (RTOS) conforme à POSIX, conçu pour les microcontrôleurs allant des architectures 8 bits aux 64 bits. Il fournit un environnement d'exécution déterministe avec un ordonnanceur de tâches temps réel et un noyau embarqué POSIX pour assurer une exécution de code portable sur diverses cibles matérielles. Le projet se distingue par une couche d'abstraction matérielle complète qui fournit des pilotes standardisés pour I2C, SPI, CAN et USB sur divers chipsets de semi-conducteurs. Il dispose également d'une pile réseau embarquée prenant en charge TCP, UDP, IPv4 et IPv6, ainsi que des protocoles industriels tels que Modbus et DroneCAN. Le système couvre un large éventail de capacités, incluant une gestion avancée de la mémoire avec pagination à la demande, des opérations cryptographiques sécurisées et un système de fichiers virtuel pour gérer des types de stockage disparates. Il intègre en outre des interfaces de haut niveau pour les interfaces graphiques, la synthèse audio et l'exécution de plusieurs langages de script et charges de travail WebAssembly. L'environnement est construit en utilisant Make ou CMake pour cibler des configurations de cartes et des chipsets spécifiques.
Automates the creation of kernel proxy and stub files using a CSV database to facilitate user-mode and kernel communication.