NVIDIA全面转向开源GPU内核模块

  每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/

关键点概述

NVIDIA于2022年5月推出了带有双重GPL和MIT许可的开源Linux GPU内核模块R515驱动程序。最初的版本主要针对数据中心计算GPU,GeForce和工作站GPU则处于alpha状态。

当时,NVIDIA宣布后续版本将提供更强大和全功能的GeForce和工作站Linux支持,最终由NVIDIA开源内核模块取代闭源驱动程序。

NVIDIA GPU共享一个通用的驱动程序架构和功能集。无论是在桌面还是笔记本电脑上,使用的都是同一款驱动程序,这也是全球最先进的AI工作负载在云端运行的驱动程序。对NVIDIA来说,做到这一点至关重要。

经过两年的努力,NVIDIA的开源GPU内核模块在应用性能上达到了相同甚至更高的水平,并增加了许多新功能:

  • 异构内存管理(HMM)支持
  • 机密计算
  • Grace平台的统一内存架构
  • 以及更多

现在,NVIDIA决定在即将发布的R560驱动程序中全面转向开源GPU内核模块。

支持的GPU

并非所有GPU都兼容开源GPU内核模块。

对于NVIDIA Grace Hopper或NVIDIA Blackwell等尖端平台,必须使用开源GPU内核模块。这些平台不支持专有驱动程序。

对于Turing、Ampere、Ada Lovelace或Hopper架构的较新GPU,NVIDIA建议切换到开源GPU内核模块。

对于Maxwell、Pascal或Volta架构的较旧GPU,开源GPU内核模块不兼容,需继续使用NVIDIA专有驱动程序。

对于混合部署(同一系统中包含旧的和新的GPU),继续使用专有驱动程序。

如果不确定哪种驱动程序适合,NVIDIA提供了一个新的检测助手脚本,帮助选择合适的驱动程序。更多信息,请参阅本文后面的“使用安装助手脚本”部分。

安装程序变化

通常情况下,所有安装方法默认安装的驱动程序版本将从专有驱动程序切换到开源驱动程序。以下几种特定情况需要特别注意:

  • 使用CUDA元包的包管理器
  • 运行文件
  • 安装助手脚本
  • 包管理器详情
  • Windows子系统(WSL)
  • CUDA工具包

使用CUDA元包的包管理器

在使用包管理器安装CUDA工具包时,安装元包常用于此目的。安装顶级cuda包时,会同时安装CUDA工具包和相关的驱动程序。例如,在CUDA 12.5发布期间安装cuda包,会得到专有的NVIDIA驱动程序555以及CUDA工具包12.5。

从CUDA 12.6版本开始,流程发生了变化(见图2)。

使用运行文件

如果使用.run文件安装CUDA或NVIDIA驱动程序,安装程序会查询硬件并自动安装最适合系统的驱动程序。UI中还提供了选项,可以在专有驱动程序和开源驱动程序之间进行选择。

使用CUDA .run文件和ncurses用户界面时,现在会看到如下菜单:

sqlCopy code┌──────────────────────────────────────────────────────────────────────────────┐
│ CUDA Driver                                                                  │
│   [ ] Do not install any of the OpenGL-related driver files                  │
│   [ ] Do not install the nvidia-drm kernel module                            │
│   [ ] Update the system X config file to use the NVIDIA X driver             │
│ - [X] Override kernel module type                                            │
│      [X] proprietary                                                         │
│      [ ] open                                                                │
│   Change directory containing the kernel source files                        │
│   Change kernel object output directory                                      │
│   Done                                                                       │
│                                                                              │
│                                                                              │
│                                                                              │
│ Up/Down: Move | Left/Right: Expand | 'Enter': Select | 'A': Advanced options │
└──────────────────────────────────────────────────────────────────────────────┘

通过驱动程序.run文件安装时,也会看到类似的选择界面(见图3)。

typescriptCopy code# sh ./cuda_12.6.0_560.22_linux.run --override --kernel-module-type=proprietary# sh ./NVIDIA-Linux-x86_64-560.run --kernel-module-type=proprietary

使用安装助手脚本

如前所述,如果不确定哪种驱动程序适合系统中的GPU,NVIDIA创建了一个助手脚本来指导选择过程。

首先使用包管理器安装nvidia-driver-assistant包,然后运行脚本:

rubyCopy code$ nvidia-driver-assistant

包管理器详情

为确保一致的体验,NVIDIA建议使用包管理器安装CUDA工具包和驱动程序。然而,不同发行版使用的具体包管理系统或包结构可能有所不同。

以下是各种平台的具体详情、注意事项或迁移步骤:

apt:基于Ubuntu和Debian的发行版

运行以下命令:

arduinoCopy code$ sudo apt-get install nvidia-open

要在Ubuntu 20.04上使用CUDA元包进行升级,首先切换到开源内核模块:

arduinoCopy code$ sudo apt-get install -V nvidia-kernel-source-open$ sudo apt-get install nvidia-open

dnf:Red Hat Enterprise Linux、Fedora、Kylin、Amazon Linux或Rocky Linux

运行以下命令:

arduinoCopy code$ sudo dnf module install nvidia-driver:open-dkms

要在基于dnf的发行版上使用CUDA元包进行升级,必须禁用模块流:

shellCopy code$ echo "module_hotfixes=1" | tee -a /etc/yum.repos.d/cuda*.repo
$ sudo dnf install --allowerasing nvidia-open
$ sudo dnf module reset nvidia-driver

zypper:SUSE Linux Enterprise Server或OpenSUSE

运行以下命令之一:

shellCopy code# 默认内核
$ sudo zypper install nvidia-open
# azure内核(sles15/x86_64)
$ sudo zypper install nvidia-open-azure
# 64kb内核(sles15/sbsa)适用于Grace-Hopper
$ sudo zypper install nvidia-open-64k

包管理器总结

为简化起见,NVIDIA在表格中汇总了包管理器推荐。所有驱动程序版本560及CUDA工具包12.6以后的版本将使用这些打包规范。

发行版安装最新版本安装特定版本
Fedora/RHEL/Kylindnf module install nvidia-driverdnf module install nvidia-driver:560-open
openSUSE/SLESzypper install nvidia-open{-azure,-64k}zypper install nvidia-open-560{-azure,-64k}
Debianapt-get install nvidia-openapt-get install nvidia-open-560
Ubuntuapt-get install nvidia-openapt-get install nvidia-open-560

Windows子系统(WSL)

Windows子系统(WSL)使用主机Windows操作系统中的NVIDIA内核驱动程序,不需要在该平台上专门安装任何驱动程序。如果使用WSL,无需进行任何更改或操作。

CUDA工具包

通过包管理器安装CUDA工具包的方法保持不变。运行以下命令:

shellCopy code$ sudo apt-get/dnf/zypper install cuda-toolkit

更多信息

有关如何安装NVIDIA驱动程序或CUDA工具包的更多信息,包括在目前无法迁移到开源GPU内核模块时如何确保安装专有驱动程序,请参阅CUDA安装指南中的驱动程序安装部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/50682.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Logback原理及应用详解(三)

本系列文章简介: 在软件开发的过程中,日志记录是一项至关重要的功能。它不仅帮助开发者在开发阶段追踪代码的执行流程和调试问题,还在生产环境中扮演着监控应用运行状态、记录关键业务信息和排查故障的重要角色。随着软件系统的日益复杂和分布…

FastAPI(七十八)实战开发《在线课程学习系统》接口开发-- 评论

源码见:"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统" 梳理下思路 1.判断是否登录 2.课程是否存在 3.如果是回复,查看回复是否存在 4.是否有权限 5.发起评论 首先新增pydantic模型 class Cour…

python当键存在时向值添加元素,键不存在时则新建的简洁方法

在 Python 中,可以使用字典来存储集合对象,并且在键存在时向集合中添加元素,键不存在时则新建一个集合并添加元素。可以使用 dict.setdefault() 方法来简化这个过程,或者手动检查键是否存在。 下面是一些示例代码: 使…

音视频入门基础:WAV专题(2)——WAV格式简介

注:本文有部分内容引用了维基百科:https://zh.wikipedia.org/wiki/WAV 一、引言 Waveform Audio File Format(缩写WAVE或WAV)是微软与IBM公司所开发在个人电脑存储音频流的编码格式,在Windows平台的应用软件受到广泛的…

AI/机器学习(计算机视觉/NLP)方向面试复习3

1. Pooling 有哪些方式?pytorch的实现? Pooling可以分成:最大池化,平均池化,全局平均池化,随机池化,空间金字塔池化。 1. 最大池化(Max Pooling) 最大池化是最常用的池…

union的特性和大小端

一、union在c和c语言中的特性 1.共享内存空间:union的所有成员共享同一块内存空间。意味着在同一时刻,union 只能存储其成员 中的一个值。当你修改了union中的一个成员,那么其它成员的值也会被改变,因为它们实际上都是指向同一块…

JS逆向高级爬虫

JS逆向高级爬虫 JS逆向的目的是通过运行本地JS的文件或者代码,以实现脱离他的网站和浏览器,并且还能拿到和浏览器加密一样的效果。 10.1、编码算法 【1】摘要算法:一切从MD5开始 MD5是一个非常常见的摘要(hash)逻辑. 其特点就是小巧. 速度快. 极难被破解. 所以,…

skywalking docker部署

skywalking-oap # 拉取skywalking-oap镜像 docker pull apache/skywalking-oap-server:9.7.0# 启动容器 docker run --name oap \ -d \ -p 11800:11800 \ -p 12800:12800 \ apache/skywalking-oap-server:9.7.0skywalking-ui # 摘取skywalking-ui镜像 docker pull apache/sky…

大屏使用技巧——如何实现数据分发

当多个组件需共用同一数据源时,为了减少重复请求,需要进行数据分发。那如何实现接一次数据就能让多个组件映射同一数据源中的不同数据字段呢? 实现思路 目标组件的静态数据中添加标记字段,数据过滤器内通过 data 参数获取到对应…

加密micropython写的程序为.mpy的方法

2024年7月26日 用虚拟机安装一个Linux,本例为CentOS7的Linux系统。 1.保证Linux能够连接网络。 2.进入root用户,使用下面的命令行安装gcc编译器: yum install gcc 3.安装完成后,查看gcc是否安装成功,用下面的命令…

家政项目小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,家政人员管理,家政服务管理,咨询信息管理,咨询服务管理,家政预约管理,留言板管理,系统管理 微信端账号功能…

前端开发知识-vue

大括号里边放键值对,即是一个对象。 一、vue可以简化前端javascript的操作。 主要特点是可以实现视图、数据的双向绑定。 使用vue主要分为三个步骤: 1.javascript中引入vue.js 可以src中可以是vue的网址,也可以是本地下载。 2.在javasc…

C#中的泛型约束:如何利用泛型约束来提高代码的类型安全性和灵活性?

泛型约束是指可以对泛型类型参数进行限制,只允许特定类型或满足特定条件的类型作为泛型参数。使用泛型约束可以提高代码的类型安全性和灵活性,以下是一些常见的泛型约束及其作用: 类型约束(class constraint)&#xff…

FastAPI(七十九)实战开发《在线课程学习系统》接口开发-- 加入课程和退出课程

源码见:"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统" 加入课程 我们先看下加入课程 1.是否登录 2.课程是否存在 3.是否已经存在 4.添加 首先实现逻辑 def get_student_course(db: Session, course: int…

C++——QT:保姆级教程,从下载到安装到用QT写出第一个程序

登录官网,在官网选择合适的qt版本进行下载 这里选择5.12.9版本 点击exe文件下载,因为服务器在国外,国内不支持,所以可以从我的网盘下载 链接: https://pan.baidu.com/s/1XMILFS1uHTenH3mH_VlPLw 提取码: 1567 --来自百度网盘超级…

Github使用技巧

(1)基本操作: Github 点击绿色按键Code 复制地址,打开自己本地想要保存的文件夹,右键,Git Bach Here git clone 地址 --下载☆star:可以衡量该程序的热度和知名度README.md 是使用一个项目前必须要阅…

本地部署Graphhopper路径规划服务(graphhopper.sh启动版)

文章目录 文章参考源码获取一、配置Java环境变量二、配置Maven环境变量三、构建graphhopper步骤1. 下载数据2. 配置graphhopper配置文件config-example.yml3. 在项目中启动命令行执行./graphhopper.sh build3.1|、遇到的问题3.1.1、pom.xml中front-maven-plugin-无法下载npm6.1…

使用 nmcli 管理网络连接

nmcli 是 NetworkManager 的命令行工具,它提供了一种方便的方式来管理网络连接、查看网络状态以及进行网络配置。无论你是在服务器环境中,还是在没有图形界面的桌面系统中,nmcli 都是一个强大的网络管理工具。本文将介绍 nmcli 的基础用法及一…

【python代码不需要额外的操作就能交换两个变量的值】

看到一个案例,想着用Python代码实现一下,不需要额外的操作就能交换两个变量的值 def swap(a, b):return b, a a, b -1, 14 swap(a, b) # (14, -1) spread([1,2,3,[4,5,6],[7],8,9]) # [1,2,3,4,5,6,7,8,9]在Python中,确实存在一种非常简洁的…

JavaScript 的奇技淫巧

JavaScript 作为一门动态语言,拥有丰富的特性和灵活性。这使得开发者们能够编写出既强大又高效的代码。然而,在某些情况下,为了追求代码的精简或性能优化,开发者可能会采用一些非传统的技巧。接下来,我们一起探索一些这…