Ubuntu24.04安装NVIDIA驱动及工具包
Ubuntu24.04安装NVIDIA驱动及工具包
- 安装nvidia显卡驱动
- 安装cuda驱动
- 安装cuDNN
- 安装Anaconda
安装nvidia显卡驱动
NVIDIA 驱动程序(NVIDIA Driver)是专为 NVIDIA 图形处理单元(GPU)设计的软件,它充当操作系统与硬件之间的桥梁,使得计算机能够正确识别和使用 GPU 的功能。驱动程序对于确保 GPU 的稳定运行、性能优化以及支持最新的图形技术至关重要。以下是 NVIDIA 驱动程序的一些关键点:
-
硬件兼容性:NVIDIA 驱动程序确保了 GPU 可以被操作系统正确识别,并提供必要的接口来让应用程序和游戏与 GPU 进行交互。
-
性能优化:新的驱动程序版本通常包含性能改进,可以提高游戏帧率或加速专业应用中的图形渲染和其他计算任务。
-
功能更新:随着新技术的发展,如实时光线追踪、DLSS(深度学习超级采样)、Reflex 等,NVIDIA 会通过驱动程序更新来引入这些新功能的支持。
-
稳定性修复:驱动程序更新经常包含对已知问题的修复,以提高系统的整体稳定性和可靠性。
-
安全更新:有时,驱动程序更新也会解决可能存在的安全漏洞,保护用户免受潜在的安全威胁。
-
兼容性:不同的驱动程序版本可能适用于特定的操作系统版本(例如 Windows 或 Linux),并且需要与特定型号的 NVIDIA GPU 兼容。
-
Game Ready Drivers:针对即将发布或已经发布的热门游戏,NVIDIA 会推出 Game Ready Drivers,这类驱动经过特别优化,以确保最佳的游戏体验。
-
Studio Drivers:面向创作者和专业人士,NVIDIA 提供 Studio Drivers,这些驱动经过认证,以确保在创意应用(如 Adobe Premiere Pro、Blender 等)中提供稳定的性能和兼容性。
ubuntu 24.04与nvidia有专门的支持,若通过到nvidia官网下载的版本来安装,不能使用,需要通过系统的软件和升级功能来安装 ,Additional Drivers,选择一个版本来安装。

安装成功后,在terminal中执行nvidia-smi,正常显示显卡的信息

安装cuda驱动
CUDA(Compute Unified Device Architecture)是 NVIDIA 推出的并行计算平台和应用程序接口(API)。它允许软件开发者通过使用 CUDA C、CUDA C++ 或其他支持 CUDA 的语言和工具,直接利用 NVIDIA 图形处理单元(GPU)进行通用计算(GPGPU, General Purpose computing on GPU)。CUDA 使开发者可以编写程序来执行复杂的计算任务,如图像处理、视频编码、科学模拟、深度学习等,并将这些任务分配给 GPU 处理,从而加速计算过程。
CUDA 的核心特性包括:
-
线程层次结构:CUDA 将计算任务分解为多个线程块(blocks),每个线程块又包含多个线程(threads)。线程之间可以在同一块内协作,并且线程块可以被组织成一维、二维或三维网格(grid)。
-
内存模型:CUDA 提供了不同类型的内存,包括全局内存、共享内存、常量内存和纹理内存等。每种内存类型都有其特定的访问特性和用途,以优化数据传输和存储。
-
指令集架构:CUDA 提供了一组专门针对 GPU 并行计算设计的指令,使得开发者能够更好地控制硬件资源。
-
库和工具:NVIDIA 提供了一系列的库(如 cuBLAS、cuFFT 等)和开发工具(如Nsight、CUDA-GDB等),用于简化编程和调试过程。
-
兼容性与扩展性:随着 GPU 架构的发展,CUDA 不断更新以支持新的硬件特性,并保持向后兼容旧版本的代码。
要使用 CUDA,通常需要安装 CUDA Toolkit,这是一个包含了编译器、库和工具的软件包,用于开发和优化基于 CUDA 的应用。此外,运行 CUDA 应用程序还需要一台配备了支持 CUDA 技术的 NVIDIA GPU 的计算机。
通过apt来安装
sudo apt install nvidia-cuda-toolkit
安装成功后,执行nvcc -V 来确认。

安装cuDNN
CuDNN(CUDA Deep Neural Network library)是 NVIDIA 提供的一个用于深度神经网络的 GPU 加速库。它旨在为深度学习开发者提供高性能的构建模块,简化并加速深度学习应用的开发过程。CuDNN 是 CUDA 的一部分,它优化了深层神经网络中最常用的原语(primitives),如卷积、池化、激活函数和归一化等操作。
CuDNN 的主要特点包括:
-
性能优化:CuDNN 针对 NVIDIA GPU 进行了高度优化,能够显著加快训练和推理的速度。它利用了 GPU 的并行计算能力,并针对不同型号的 GPU 优化了算法实现。
-
易用性:通过提供简单易用的 API,CuDNN 使得开发者可以轻松地将高效的深度学习操作集成到他们的应用程序中,而无需深入了解底层硬件细节或编写复杂的 CUDA 代码。
-
广泛的框架支持:大多数流行的深度学习框架(如 TensorFlow、PyTorch、Caffe 等)都内置了对 CuDNN 的支持,这意味着用户可以在这些框架中直接使用 CuDNN 来加速模型训练和推理。
-
自动调优:CuDNN 能够根据不同的网络结构和数据类型自动选择最优算法,以确保最佳性能。对于某些操作,它还可以在运行时动态调整参数,进一步提升效率。
-
跨平台兼容性:尽管 CuDNN 主要设计用于 Linux 和 Windows 操作系统上的 NVIDIA GPU,但它也提供了 Docker 容器镜像等形式的支持,方便开发者在多种环境中部署深度学习应用。
为了使用 CuDNN,你需要先安装 CUDA Toolkit,然后下载并安装与你的 CUDA 版本相匹配的 CuDNN 库。安装完成后,你就可以在你的深度学习项目中启用 CuDNN 支持,从而享受 GPU 加速带来的性能提升。
到官网下载https://developer.nvidia.com/cudnn-downloads
选择对应的平台版本等,页面会显示对应步骤,按照步骤执行。

wget https://developer.download.nvidia.com/compute/cudnn/9.6.0/local_installers/cudnn-local-repo-ubuntu2404-9.6.0_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2404-9.6.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2404-9.6.0/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt update
sudo apt -y install cudnn
# 如果安装的是CUDA 11,那么执行如下
sudo apt -y install cudnn-cuda-11
# 如果安装的是CUDA 12,那么执行如下
sudo apt -y install cudnn-cuda-12
安装Anaconda
从中国科学技术大学 https://mirrors.ustc.edu.cn/anaconda/archive/ 下载相应版本。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --set show_channel_urls yes
相关文章:
Ubuntu24.04安装NVIDIA驱动及工具包
Ubuntu24.04安装NVIDIA驱动及工具包 安装nvidia显卡驱动安装cuda驱动安装cuDNN安装Anaconda 安装nvidia显卡驱动 NVIDIA 驱动程序(NVIDIA Driver)是专为 NVIDIA 图形处理单元(GPU)设计的软件,它充当操作系统与硬件之间…...
【每日学点鸿蒙知识】组件封装通用方法、callback和await性能对比、Web组件下拉刷新、hsp包报错、WebView圆角
1、HarmonyOS 自定义的组件如何封装一些通用的属性和方法,例如 Java 中的继承? export class Animal{name:stringage:stringconstructor(name:string,age:string) {this.name namethis.age age} }export class Person extends Animal{reading:stri…...
Excel批量设置行高,Excel表格设置自动换行后打印显示不全,Excel表格设置最合适的行高后打印显示不全,完美解决方案!!!
文章目录 说个问题(很严重!!!)写个方案会Python看这里Python环境搭建不存在多行合并存在多行合并 不会Python看这里 说个问题(很严重!!!) 平时处理Excel表格…...
Web Bluetooth API 开发记录
搞了一天的蓝牙串口协议被几个软件和AI带沟里面去了。 1.00001101-0000-1000-8000-00805f9b34fb 是spp协议。但是我用的称是使用的49535343-fe7d-4ae5-8fa9-9fafd205e455蓝牙低功耗spp协议 2.推荐一款软件Android-nRF-Connect github地址:https://github.com/Nor…...
python基础知识(二)
元组 元组与列表类似,不同之处在于,元组的元素不能修改,元组使用()。 集合 集合是一个无序且不重复的元素列表。 基本功能是 进行成员关系测试和删除重复元素。 创建集合使用大括号或者set()函数。 例子: 注意:创建一…...
【每日学点鸿蒙知识】初始化BigInt、包体积瘦身、Tabs嵌套Grid、老年化适配、Release打包失败
1、HarmonyOS 在一个类中,怎么初始化一个BigInt类型的属性? 可以通过BigInt关键字来初始化,如: let a BigInt(1); let b BigInt("2"); 关于Uint8Array与string互转,示例: // string 转Uint8…...
Android service framework笔记
1. 网络摘录如何添加一个Application Framework Service(一)(without native code) 如何添加一个Application Framework Service(二)(with native code) 2.书籍摘录...
安全攻防:中间人攻击
1. 中间人攻击定义 中间人攻击(简称MITM)是攻击者在进行网络通信的双方中间,分别与两端建立独立的联系,并进行数据嗅探甚至篡改,而通信的双方却对中间人毫不知情,认为自己是直接在与对端通信。2. 常见中间人…...
【Rust自学】7.3. use关键字 Pt.1:use的使用与as关键字
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 7.3.1. use的作用 use的作用是将路径导入到当前作用域内。而引入的内容仍然是遵守私有性原则,也就是只有公共的部分引入进来才…...
变长的时间戳(第4版)
以32位为单位,一个时间戳可以是32位、64位、96位。 122932 113032 A类:(40036597)1000146097000≤229 B类:246060100086400000≤229 C类:1000100010001000000000≤230 每400年有40036597146097天,A类时间戳能表达1000…...
Intent--组件通信
组件通信1 获取子活动的返回值 创建Activity时实现自动注册!【Activity必须要注册才能使用】 默认 LinearLayout 布局,注意 xml 中约束布局的使用; 若需要更改 线性布局 只需要将标签更改为 LinearLayout 即可,记得 设置线性布局…...
Android14 OTA升级速度过慢问题解决方案
软件版本:Android14 硬件平台:QCS6115 问题:OTA整包升级接近20min,太长无法忍受。 该问题为Android高版本的虚拟AB分区压缩技术所致,其实就是时间换空间,个人推测AB分区压缩会节约硬件存储空间࿰…...
仓颉语言实战——1. 类型
仓颉语言实战——1. 类型 仓颉语言(Cangjie Language)是一个现代化的、简洁而强大的编程语言,它的类型系统为高效开发提供了极大的支持。本篇文章将围绕仓颉语言中的类型系统展开,结合实战代码,帮助开发者快速掌握这一…...
AWTK 在全志 tina linux 上支持 2D 图形加速
全志 tina linux 2D 图形加速插件。 开发环境为 全志 Tina Linux 虚拟机。 1. 准备 下载 awtk git clone https://github.com/zlgopen/awtk.git下载 awtk-linux-fb git clone https://github.com/zlgopen/awtk-linux-fb.git下载 awtk-tina-g2d git clone https://github.co…...
MySql幻读问题
认识具有反复性。 之前以为理解了幻读,最近看黑马的mysql教程以为再次加深了认识。然而现在认为之前的理解都是错误的,而且网上很多关于幻读的解释,都不太准确。 关于幻读的最佳解释还是要看官网mysql官网幻读解释 脏读和不可重复读比较好理…...
(南京观海微电子)——GH7009开机黑屏案例分析
一、 现象描述: 不良现象: LVDS模组,开机大概2秒后就黑屏。 二、问题分析 等主机进入Kernel 后做以下测试: 1、手动reset LCM 后 可以显示正常; 总结: 1)uboot 部分HS 太窄,仅有4个clk宽度&am…...
【Rust自学】7.4. use关键字 Pt.2 :重导入与换国内镜像源教程
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 7.4.1. 使用pub use重新导入名称 使用use将路径导入作用域内后。该名称在词作用域内是私有的。 以上一篇文章的代码为例: m…...
前端学习DAY28(水平)
元素水平方向的布局 元素在其父元素中水平方向的位置有以下几个属性共同决定 margin-left border-left padding-left width padding-right border-right margin-right 一个元素在其父元素中,水平布局必须要满足以下的等式 margin-left border-left …...
【MyBatis】day01搭建MyBatis框架
目录 第一章 初识Mybatis 第二章 搭建Mybatis框架 第三章 Mybatis核心配置详解【mybatis-config.xml】 第一章 初识Mybatis 1.1 框架概述 生活中“框架” 买房子 笔记本电脑 程序中框架【代码半成品】 Mybatis框架:持久化层框架【dao层】 SpringMVC框架&…...
yolov7算法及其改进
yolov7算法及其改进 1、YOLOV7简介2、ELAN架构设计2.1、Partial Residual Networks2.1.1、Masked Residual Layer2.1.2、Asymmetric Residual Layer 2.2、Cross Stage Partial Networks2.2.1、Cross stage partial operation2.2.2、Gradient flow truncate operation 2.3、Effi…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...
Android写一个捕获全局异常的工具类
项目开发和实际运行过程中难免会遇到异常发生,系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler,它是Thread的子类(就是package java.lang;里线程的Thread)。本文将利用它将设备信息、报错信息以及错误的发生时间都…...
工厂方法模式和抽象工厂方法模式的battle
1.案例直接上手 在这个案例里面,我们会实现这个普通的工厂方法,并且对比这个普通工厂方法和我们直接创建对象的差别在哪里,为什么需要一个工厂: 下面的这个是我们的这个案例里面涉及到的接口和对应的实现类: 两个发…...
