6 repository-uri
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 este o bibliotecă C++ standalone de machine learning și tensori, utilizată pentru construirea și antrenarea rețelelor neuronale. Aceasta funcționează ca un framework cuprinzător de rețele neuronale și motor de diferențiere automată, oferind instrumentele necesare pentru a construi grafuri de calcul și a calcula gradienții prin backpropagation. Proiectul servește drept framework de antrenare distribuită, utilizând operațiuni all-reduce pentru a sincroniza gradienții și parametrii pe mai multe noduri de calcul și dispozitive. Se distinge prin integrarea profundă a manipulării de înaltă performanță a tensorilor, interoperabilitatea nativă a memoriei dispozitivului și un sistem pentru sincronizarea ponderilor între workerii distribuiți pentru a accelera antrenarea modelelor la scară largă. Framework-ul acoperă o gamă largă de capabilități de deep learning, inclusiv compoziția modulară a straturilor pentru proiectarea arhitecturilor complexe precum blocuri reziduale și celule recurente. Oferă utilitare extinse de gestionare a datelor pentru ingestie și prefetching, alături de sisteme de serializare pentru persistența stărilor modelelor. În plus, include o suită de instrumente de monitorizare și observabilitate pentru urmărirea metricilor de antrenare și măsurarea erorilor de secvență. Biblioteca este implementată în C++.
Enables custom GPU kernels to operate on raw tensor memory addresses for high-performance mathematical operations.
NCCL este o bibliotecă de comunicare de înaltă performanță și un framework de calcul distribuit pe GPU, conceput pentru executarea schimburilor de date colective și punct-la-punct pe mai multe GPU-uri în sisteme cu un singur nod sau multi-nod. Servește ca strat de transport RDMA pentru GPU și orchestrator de memorie, facilitând sincronizarea cu lățime de bandă mare a datelor și a gradienților de model pentru antrenarea și inferența distribuită pe GPU. Biblioteca se distinge prin capacitatea sa de a executa primitive de comunicare direct din kernel-urile GPU, eliminând CPU-ul gazdă din calea critică. Utilizează selecția de căi conștientă de topologie pentru a optimiza mișcarea datelor și folosește transportul de rețea bazat pe RDMA, inclusiv InfiniBand și NVLink, pentru a permite accesul la memorie zero-copy între dispozitive pe diferite noduri fizice. Proiectul acoperă o gamă largă de tipare de comunicare colectivă, inclusiv reduceri, broadcast-uri, gather-uri și schimburi all-to-all, alături de accesul la memorie la distanță punct-la-punct. Oferă gestionare cuprinzătoare a comunicatorului pentru inițializarea, partiționarea și redimensionarea grupurilor GPU, precum și gestionarea specializată a memoriei pentru înregistrarea bufferelor și coordonarea memoriei partajate a dispozitivului. Sistemul include o suită de instrumente de monitorizare și observabilitate pentru urmărirea stării, logarea diagnostică și monitorizarea evenimentelor în timp real, precum și interfețe de integrare pentru framework-uri de machine learning, CUDA graphs, MPI și Python.
Implements direct access to raw memory addresses for high-performance GPU kernel communication.
Tengine este o suită de instrumente și un motor de execuție ușor, conceput pentru rularea modelelor de deep learning pe hardware embedded cu resurse limitate. Acesta oferă o infrastructură pentru conversia modelelor de rețele neuronale, cuantizarea ponderilor, optimizarea kernel-urilor operatorilor și benchmarking-ul performanței de inferență pe unități CPU, GPU și NPU. Proiectul dispune de un optimizator automat de kernel-uri pentru operatori pentru a genera kernel-uri de înaltă eficiență și un instrument de cuantizare a modelelor care reduce precizia la formate întregi pentru a scădea utilizarea memoriei. Include un instrument dedicat de benchmarking hardware pentru a evalua viteza de execuție și eficiența arhitecturilor de rețele neuronale pe dispozitive embedded. Sistemul acoperă conversia formatelor de model într-o reprezentare internă hardware-agnostică, dispatch-ul modular al operatorilor și execuția multi-backend. Aceste capabilități permit transformarea definițiilor externe de rețele neuronale într-un format de runtime compatibil pentru deployment-ul embedded.
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.
Acest proiect este o traducere în limba chineză a ghidurilor tehnice și a referințelor API pentru framework-ul de deep learning PyTorch. Servește ca o bază de cunoștințe localizată și material de referință pentru a face documentația de deep learning accesibilă vorbitorilor non-nativi de engleză. Documentația acoperă o gamă cuprinzătoare de capabilități PyTorch, inclusiv dezvoltarea modelelor de rețele neuronale, diferențierea automată și implementarea kernel-urilor de backend. Oferă îndrumări detaliate privind strategiile de antrenare distribuită, implementarea modelelor prin formate precum ONNX și C++, precum și diverse tehnici de optimizare și cuantizare a modelelor. Proiectul utilizează un pipeline de traducere condus de comunitate și un model de contribuție distribuit pentru a menține conținutul sincronizat cu versiunile. Materialele tehnice sunt organizate folosind markdown și randate într-un site web navigabil prin generare de site-uri statice.
Describes the registration of high-performance operator kernels and mixed precision implementations.
NuttX este un sistem de operare în timp real (RTOS) compatibil POSIX, conceput pentru microcontrolere de la arhitecturi pe 8 biți până la 64 de biți. Oferă un mediu de execuție determinist cu un scheduler de task-uri în timp real și un kernel embedded POSIX pentru a asigura execuția portabilă a codului pe diverse ținte hardware. Proiectul se distinge printr-un strat de abstractizare hardware cuprinzător care oferă drivere standardizate pentru I2C, SPI, CAN și USB pe diverse chipset-uri semiconductoare. De asemenea, dispune de un stack de rețea embedded care suportă TCP, UDP, IPv4 și IPv6, alături de protocoale industriale precum Modbus și DroneCAN. Sistemul acoperă o gamă largă de capabilități, inclusiv gestionarea avansată a memoriei cu paginare la cerere, operațiuni criptografice securizate și un sistem de fișiere virtual pentru gestionarea tipurilor de stocare disparate. De asemenea, integrează interfețe de nivel înalt pentru interfețe grafice (GUI), sinteză audio și execuția mai multor limbaje de scripting și workload-uri WebAssembly. Mediul este construit folosind Make sau CMake pentru a viza configurații specifice de plăci și chipset-uri.
Automates the creation of kernel proxy and stub files using a CSV database to facilitate user-mode and kernel communication.