# nvidia/open-gpu-kernel-modules

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/nvidia-open-gpu-kernel-modules).**

17,107 stars · 1,724 forks · C · NOASSERTION

## Links

- GitHub: https://github.com/NVIDIA/open-gpu-kernel-modules
- awesome-repositories: https://awesome-repositories.com/repository/nvidia-open-gpu-kernel-modules.md

## Description

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 hardware versions. Its capability surface includes GPU hardware acceleration, firmware image extraction for open source driver compatibility, and a build pipeline that supports cross-compilation and architecture-targeted compilation.

## Tags

### Graphics & Multimedia

- [GPU Hardware Acceleration](https://awesome-repositories.com/f/graphics-multimedia/gpu-hardware-acceleration.md) — Activates graphics processing units via kernel modules to provide high-performance rendering and compute capabilities.

### Operating Systems & Systems Programming

- [GPU Firmware Loaders](https://awesome-repositories.com/f/operating-systems-systems-programming/gpu-firmware-loaders.md) — Functions as a system for extracting and linking signed binary firmware images into kernel modules at load time.
- [Graphics Drivers](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-drivers/graphics-drivers.md) — Provides kernel-level driver services for graphics hardware to enable acceleration and display output. ([source](https://github.com/nvidia/open-gpu-kernel-modules#readme))
- [Hardware Activation](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-drivers/graphics-drivers/dynamic-gpu-driver-loading/hardware-activation.md) — Installs kernel-level drivers to facilitate direct communication between the operating system and graphics processing units. ([source](https://github.com/nvidia/open-gpu-kernel-modules#readme))
- [Kernel Module Compilation](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-module-compilation.md) — Builds hardware driver modules from source for multiple supported architectures. ([source](https://github.com/nvidia/open-gpu-kernel-modules#readme))
- [Linux GPU Kernel Drivers](https://awesome-repositories.com/f/operating-systems-systems-programming/linux-gpu-kernel-drivers.md) — Provides an open source kernel module for Linux that delivers low-level driver services for GPUs.
- [Linux Kernel Module Management](https://awesome-repositories.com/f/operating-systems-systems-programming/linux-kernel-module-management.md) — Provides a system for compiling, loading, and debugging GPU drivers as Linux kernel modules.
- [GPU Architecture Support](https://awesome-repositories.com/f/operating-systems-systems-programming/multi-architecture-support/hardware-architecture-support/gpu-architecture-support.md) — Provides driver support for Turing-architecture GPUs and all subsequent newer hardware versions. ([source](https://github.com/nvidia/open-gpu-kernel-modules#readme))
- [Dual-License Driver Architectures](https://awesome-repositories.com/f/operating-systems-systems-programming/dual-license-driver-architectures.md) — Implements a dual-module architecture to separate GPL-licensed kernel code from proprietary firmware blobs.
- [GPU Driver Installation](https://awesome-repositories.com/f/operating-systems-systems-programming/gpu-driver-installation.md) — Enables the installation and configuration of kernel-level drivers for hardware acceleration and display output.

### Part of an Awesome List

- [Linux Kernel Development](https://awesome-repositories.com/f/awesome-lists/devops/linux-kernel-development.md) — Implements a loadable kernel module to extend the Linux kernel for graphics hardware communication.

### Development Tools & Productivity

- [GPU Driver Modules](https://awesome-repositories.com/f/development-tools-productivity/centralized-shell-configurations/module-loading-systems/dynamic-logic-modules/gpu-driver-modules.md) — Enables the loading of dynamically compiled GPU driver modules into the system kernel. ([source](https://github.com/nvidia/open-gpu-kernel-modules#readme))
- [Load-Time Linking](https://awesome-repositories.com/f/development-tools-productivity/centralized-shell-configurations/module-loading-systems/dynamic-logic-modules/gpu-driver-modules/load-time-linking.md) — Links GPL kernel code with proprietary firmware modules at load time to satisfy hardware initialization dependencies.
- [Proprietary-Open Driver Splits](https://awesome-repositories.com/f/development-tools-productivity/centralized-shell-configurations/module-loading-systems/dynamic-logic-modules/proprietary-open-driver-splits.md) — Utilizes a dual-module build system that separates proprietary firmware blobs from GPL-licensed kernel code.

### Hardware & IoT

- [Firmware Image Extractors](https://awesome-repositories.com/f/hardware-iot/firmware-management/firmware-image-extractors.md) — Extracts and links binary firmware images into kernel modules to initialize GPU hardware.

### Programming Languages & Runtimes

- [Hardware-Targeted Compilation](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/multi-target-compilers/hardware-targeted-compilation.md) — Allows compiling code for specific GPU hardware architectures using target-specific build rules.

### Security & Cryptography

- [Binary Blob Extraction](https://awesome-repositories.com/f/security-cryptography/local-data-storage/binary-blob-storage/binary-blob-extraction.md) — Implements mechanisms to isolate and extract signed binary firmware blobs from compiled objects for driver use.

### Software Engineering & Architecture

- [Preprocessor-Based Targeting](https://awesome-repositories.com/f/software-engineering-architecture/performance-reliability/performance-optimization/computational-efficiency/cpu-optimization-strategies/hardware-instruction-targeting/preprocessor-based-targeting.md) — Employs compile-time directives to generate driver binaries optimized for specific graphics processor architectures.
