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,一经查实,立即删除!

相关文章

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

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

音视频入门基础: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…

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 --来自百度网盘超级…

本地部署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…

土耳其云手机提升TikTok电商效率

在数字化飞速发展的今天,TikTok不仅是一个社交平台,更是一个巨大的电商市场。随着TikTok电商功能在全球范围内的扩展,土耳其的商家和内容创作者正面临着前所未有的机遇。本文将详细介绍土耳其云手机怎样帮助商家抓住机遇,实现业务…

项目都做完了,领导要求国际化????--JAVA后端篇

springboot项目国际化相信各位小伙伴都会,很简单,但是怎么项目都做完了,领导却要求国际化文件就很头疼了 国际化的SpringBoot代码: 第一步:创建工具类 /*** 获取i18n资源文件** author bims*/ public class Message…

MATLAB怎么实现多条曲线共用一个图例

y1 sin(x); y2 3*sin(x); y3 cos(x); y4 3*cos(x); 例子:如果我们有4条曲线,分布是cos类和sin类,我们的图例就想区分是cos类还是sin类。 第一步(关键步骤) 我们要把我们所需要的类别曲线先画一遍, …

《Programming from the Ground Up》阅读笔记:p75-p87

《Programming from the Ground Up》学习第4天,p75-p87总结,总计13页。 一、技术总结 1.persistent data p75, Data which is stored in files is called persistent data, because it persists in files that remain on disk even when the program …

用 apifox cli 命令行运行本地接口出现TypeError:Invalid IP address: undefined

用 apifox cli 命令行运行本地接口出现TypeError:Invalid IP address: undefined,客户端运行是通过的但命令行运行会报错 修改端口也是一样报错,地址修改为127.0.0.1会报错connect ECONNREFUSED 127.0.0.1:8080 解决方法:不用localhost&…

智能合约在能源行业中的应用:促进可再生能源的发展与利用

随着全球能源需求的增长和环境保护意识的提升,可再生能源作为替代传统能源的重要选择,正逐步成为能源供应的主流。本文将探讨智能合约在能源行业中的应用,特别是如何通过智能合约促进可再生能源的发展与利用。 可再生能源的重要性与挑战 可再…

react中使用forwardRef获取子组件中的节点以及子组件的方法(useImperativeHandle的使用)

1.forwardRef的使用 import { forwardRef, useRef } from "react"const Son forwardRef((props, ref)> {return (<input type"text" ref{ref} id"kannoId"/>) })function ForwardRef() {const sonRef useRef(null)const showRef ()…