Open GPU Kernel Module英伟达 Linux GPU 内核模块

联合创作 · 2023-09-26 21:09

Open GPU Kernel Module 是 英伟达 NVIDIA 开源的 Linux GPU 内核模块,以 GPL/MIT  双重许可正式开源。

目前,此 NVIDIA Open GPU 内核模块的第一个版本是 R515.43.04,除了源代码之外,还提供了驱动程序的完全构建和打包版本。

  • 对于 NVIDIA Turing 和 NVIDIA Ampere 架构系列中的数据中心 GPU,这些代码可用于生产。
  • 对于 GeForce 和工作站 GPU,这些代码被认为是 “alpha 版本的质量”
  • 拥有 Turing 和 Ampere GPU 的客户可以选择安装哪些模块。
  • Pre-Turing 客户将继续运行闭源模块。

目录结构布局

  • kernel-open/ 内核接口层

  • kernel-open/nvidia/ nvidia.ko 的内核接口层

  • kernel-open/nvidia-drm/ nvidia-drm.ko 的内核接口层

  • kernel-open/nvidia-modeset/nvidia-modeset.ko 的内核接口层

  • kernel-open/nvidia-uvm/ nvidia-uvm.ko 的内核接口层

  • src/ 与操作系统无关的代码

  • src/nvidia/ nvidia.ko 与操作系统无关的代码

  • src/nvidia-modeset/ nvidia-modeset.ko 的操作系统无关代码

  • src/common/ nvidia.ko 和 nvidia-modeset.ko 中的一项或多项使用的实用程序代码

如何构建

构建:

make modules -j`nproc`
 

要安装,首先要卸载任何现有的 NVIDIA 内核模块。然后,作为根:

make modules_install -j`nproc`

请注意,此处构建的内核模块必须与来自相应 515.43.04 驱动程序版本的 gsp.bin 固件,和用户空间 NVIDIA GPU 驱动程序组件一起使用。可以通过使用该--no-kernel-modules 选项从 .run 文件安装 NVIDIA GPU 驱动程序来实现。例如

sh ./NVIDIA-Linux-[...].run --no-kernel-modules

支持的 CPU 架构

目前,可以为 x86_64 或 aarch64 构建内核模块。

支持的工具链

任何现代版本的 gcc 或 clang 都可以用来构建内核模块。请注意,内核模块的内核接口层必须使用用于构建内核的工具链来构建。

支持的 Linux 内核版本

NVIDIA 开放内核模块支持与专有 NVIDIA 内核模块支持相同范围的 Linux 内核版本: Linux 内核 3.10 或更高版本。

浏览 13
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报