11 dépôts
Compiling source code into binaries specifically optimized for particular hardware revisions or architectures.
Distinct from Multi-Target Compilers: Focuses on hardware-specific build rules and directives rather than general multi-target bytecode generation.
Explore 11 awesome GitHub repositories matching programming languages & runtimes · Hardware-Targeted Compilation. Refine with filters or upvote what's useful.
This project is an open source Linux GPU kernel driver implemented as a loadable kernel module. It functions as a GPU firmware loader, providing the low-level driver services necessary to enable direct communication between the operating system and graphics processing units. The driver utilizes a dual-module architecture that separates GPL-licensed kernel code from proprietary firmware blobs. This system extracts and links signed binary firmware images into the kernel modules at driver load time. The project provides driver support for Turing-architecture GPUs and all subsequent newer hardwa
Allows compiling code for specific GPU hardware architectures using target-specific build rules.
Ce projet est un environnement de firmware basé sur Lua pour la puce WiFi ESP8266, fournissant un interpréteur Lua embarqué et un framework de développement pour le matériel SoC WiFi. Il fonctionne comme un wrapper basé sur C autour du SDK non-OS d'Espressif, permettant l'exécution de scripts asynchrones pour gérer la communication sans fil et les périphériques matériels. L'environnement intègre un système de fichiers flash SPIFFS pour stocker des scripts et des données persistants directement sur la mémoire non volatile. Pour optimiser les ressources matérielles limitées, le système utilise l'exécution flash « execute-in-place », exécutant les constantes et instructions en lecture seule directement depuis la mémoire flash pour préserver la RAM système. Le projet couvre la gestion de la connectivité sans fil, l'implémentation de services réseau et le mappage des périphériques matériels. Il inclut des outils pour la compilation de firmware, la compilation de scripts Lua en bytecode et la génération d'images de système de fichiers pour le déploiement cible.
Transforms source code into binary images for deployment on target hardware using a cross-compile toolchain.
OpenBLAS is a high-performance implementation of the Basic Linear Algebra Subprograms standard designed for numerical computing and matrix operations. It serves as a hardware-accelerated numerical library and optimized math kernel library, providing a computational engine for large-scale matrix multiplication and vector operations. The library distinguishes itself through the use of hand-tuned assembly kernels and SIMD instruction mapping, such as AVX and SVE, to maximize floating-point performance on specific CPU architectures. It features a multi-threaded framework that manages parallel exe
Compiles routines into binaries specifically optimized for particular hardware revisions to maximize performance.
OpenBLAS est une bibliothèque haute performance pour les sous-programmes d'algèbre linéaire de base qui fournit des opérations de matrice et de vecteur optimisées. Elle sert de backend mathématique multi-architecture et de framework de calcul numérique conçu pour exécuter des calculs mathématiques complexes et une analyse numérique à haute vitesse. La bibliothèque fonctionne comme une bibliothèque mathématique CPU optimisée qui détecte le matériel au moment de l'exécution pour appliquer les noyaux d'opération les plus efficaces pour le processeur spécifique. Elle prend en charge plusieurs cibles CPU grâce à une combinaison d'implémentations optimisées en assembleur et en C. Le projet couvre l'algèbre linéaire haute performance, l'optimisation de l'architecture CPU et l'infrastructure de calcul scientifique. Il inclut des capacités pour la gestion des ressources de calcul numérique, telles que le contrôle de l'allocation des threads pour les charges de travail lourdes sur les systèmes partagés.
Supports compiling a single library for various CPU architectures via flexible build configurations.
WinObjC est une implémentation du runtime du langage Objective-C et du modèle d'objet pour le système d'exploitation Windows. Son objectif principal est de permettre l'exécution de code Objective-C et d'APIs iOS sur Windows pour soutenir le portage d'applications iOS. Le projet propose un pont API natif qui mappe les appels de framework système Objective-C vers des fonctions API Windows natives. Il inclut une chaîne d'outils pour convertir les cibles et espaces de travail Xcode en formats Visual Studio et traduit les fichiers de design de storyboard visuels en éléments d'interface actifs à l'écran. La base de code couvre l'interopérabilité binaire, la compilation multi-architecture et le routage des événements d'interface utilisateur. Elle fournit également des outils de diagnostic pour inspecter les états de mémoire au runtime et visualiser les objets natifs lors du débogage. Les sorties du projet sont distribuées sous forme de paquets NuGet.
Produces binaries for various CPU targets and applies compiler optimizations for improved performance.
edk2 est un projet de développement pour créer un firmware système conforme à la spécification UEFI. Il fournit l'infrastructure nécessaire pour initialiser les plateformes matérielles et démarrer les systèmes d'exploitation sur plusieurs architectures CPU. Le projet utilise une architecture de firmware modulaire qui découple les protocoles de gestion de haut niveau des couches de transport physiques. Il implémente des fonctionnalités de sécurité critiques, notamment une chaîne de démarrage mesurée (measured boot), des primitives cryptographiques pour l'authentification d'images et la prise en charge des implémentations matérielles et logicielles du Trusted Platform Module (TPM). Sa surface de capacité s'étend aux standards de gestion de plateforme tels que Redfish, IPMI et MCTP, ainsi qu'à la génération de tables ACPI dynamiques. Le projet inclut également une suite complète d'outils pour la compilation multi-architecture, la simulation de firmware et l'émulation de plateforme virtuelle pour des hyperviseurs comme KVM, Xen et QEMU. Le projet inclut un système de build multi-cible et une orchestration de tests automatisés pour valider la fonctionnalité du firmware dans des environnements émulés et physiques.
Compiles Firmware Support Package (FSP) binaries to initialize hardware platforms according to the UEFI specification.
seL4 is a formally verified microkernel whose C implementation is backed by machine-checked mathematical proofs of correctness, confidentiality, integrity, and availability. It enforces strict isolation between processes through hardware-enforced address space separation and a capability-based access control system, where each process holds explicit rights only to the resources it has been granted. The kernel exposes hardware resources through a minimal API of system calls that manage threads, address spaces, and inter-process communication, with synchronous IPC supporting sender-identifying b
Selects the specific hardware architecture and platform to compile the kernel for, including CPU core count and FPU support.
rust-cuda est un framework de programmation GPU et un compilateur de périphériques qui permet le développement et l'exécution de noyaux (kernels) haute performance sur du matériel NVIDIA en utilisant Rust. Il fournit un wrapper de pilote pour gérer l'allocation de mémoire du périphérique et le lancement des noyaux, servant efficacement de système pour écrire une logique de calcul GPU sans dépendre du C++. Le projet inclut une bibliothèque de calcul avec des primitives optimisées pour le matériel pour l'accélération des réseaux neuronaux et le raytracing accéléré par le matériel. Il utilise une chaîne de compilation qui traduit le code source en une représentation intermédiaire de bas niveau pour l'exécution sur les processeurs graphiques. Le framework couvre la gestion des ressources du périphérique, le développement de noyaux et la simulation d'opérations entières de haute précision. Il prend également en charge la génération de nombres aléatoires côté périphérique et des optimisations de calcul spécifiques à la cible. Des images de conteneurs pré-configurées sont disponibles pour simplifier le provisionnement de la chaîne de compilation et de l'environnement de développement à travers différentes architectures matérielles.
Configures compilation rules to optimize binaries for specific GPU hardware revisions and architectures.
ExpressLRS est un système de radiocommande open source qui fournit une liaison radio haute performance entre émetteurs et récepteurs. Il consiste principalement en un firmware qui exploite la technologie LoRa pour permettre une communication sans fil longue portée avec une faible latence. Le système se distingue par un mécanisme de liaison d'appareil basé sur des phrases, qui utilise des chaînes de caractères uniques pour appairer le matériel sans avoir besoin de boutons physiques. Il inclut également un émulateur de joystick qui permet au matériel radio de fournir des entrées pour des simulateurs de vol et de course via Bluetooth ou WiFi. Le projet couvre une large gamme de capacités de radiocommande, incluant la surveillance de télémétrie en temps réel, le routage des signaux de contrôle pour la compatibilité matérielle et la gestion des fréquences vidéo. Il fournit des outils pour la compilation de firmware spécifique à une cible et prend en charge les mises à jour de firmware sans fil via WiFi.
Generates binary builds optimized for specific hardware pinouts and processor targets.
PlaidML is a deep learning compiler framework and cross-platform runtime designed to execute machine learning models on a wide variety of hardware targets. It functions as a hardware agnostic tensor engine that translates tensor models into executable code, allowing deep learning networks to run across different compute devices without requiring specific driver dependencies. The system enables the execution of models on custom or limited hardware by using JSON specifications to define device hardware. It employs a domain-specific language to describe tensor computations and provides a middle
Translates high-level tensor networks into executable code optimized for the specific constraints of chosen hardware targets.
IREE is an MLIR-based compiler toolchain and runtime designed to translate machine learning models from various frameworks into optimized binaries for execution across diverse hardware targets. It provides a unified pipeline to ingest models from PyTorch, TensorFlow, JAX, and ONNX, lowering them into a common intermediate representation for deployment on CPUs, GPUs, and bare-metal embedded systems. The project distinguishes itself through a bytecode virtual machine and a hardware abstraction layer that decouple high-level model logic from specific hardware instruction sets. It supports sophis
Transforms intermediate representation modules into executable binaries targeted for specific hardware backends.