【CUDA入门·Lesson 1】Ubuntu实战:CUDA 概念、nvidia-smi 工具与 GPU 参数详解

目录

[1. 什么是 CUDA?一张图先搞清](#1. 什么是 CUDA?一张图先搞清)

[2. 实战环境:Ubuntu 22.04 + RTX 4060 Laptop](#2. 实战环境:Ubuntu 22.04 + RTX 4060 Laptop)

[3. nvidia-smi 瑞士军刀:参数、监控、调优](#3. nvidia-smi 瑞士军刀:参数、监控、调优)

[3.1 基本用法](#3.1 基本用法)

[3.2 关键字段拆解(RTX 4060 Laptop 为例)](#3.2 关键字段拆解(RTX 4060 Laptop 为例))

[4. GPU 参数速查表](#4. GPU 参数速查表)

[5. 安装 CUDA Toolkit(可选阅读)](#5. 安装 CUDA Toolkit(可选阅读))

[6. 小结 & 下集预告](#6. 小结 & 下集预告)


老规矩,先赞后看,养成好习惯! 源码、脚本全部放在文中,随取随用。


1. 什么是 CUDA?一张图先搞清

CUDA (Compute Unified Device Architecture) 是 NVIDIA 推出的 GPU 通用并行计算平台 ,它允许开发者利用显卡的并行计算能力进行 科学计算、机器学习、深度学习、图像处理、数值模拟 等任务。

  • 传统 CPU 计算:串行/少量并行 → 适合逻辑控制

  • GPU 计算:大规模并行 → 适合矩阵运算、深度学习

⚡ 举个例子:

  • CPU 核心数:4 核 / 8 核(几十个线程)

  • GPU 核心数:几千到上万 CUDA 核心(数万线程同时运行)

👉 简单理解:CUDA 就是让 GPU "像 CPU 一样"编程,写 C/C++/Python 代码,交给 GPU 干加速运算的事。

概念 类比 说明
Host CPU 端 负责逻辑、流程控制
Device GPU 端 负责并行计算
Kernel 运行在 GPU 上的函数 成千上万个线程同时执行
Thread → Block → Grid 三级并行层次 方便映射到 GPU 硬件

2. 实战环境:Ubuntu 22.04 + RTX 4060 Laptop

复制代码
# 系统/驱动信息
复制代码
lsb_release -d
复制代码
复制代码
nvidia-smi
复制代码

3. nvidia-smi 瑞士军刀:参数、监控、调优

3.1 基本用法

命令 功能
nvidia-smi 实时一次快照
watch -n 1 nvidia-smi 每秒刷新
nvidia-smi -L 列出所有 GPU
nvidia-smi --query-gpu=name,driver_version,memory.total --format=csv 提取关键字段

3.2 关键字段拆解(RTX 4060 Laptop 为例)

上面输出的信息比较多,我们逐一解释:

  • Driver Version:当前 NVIDIA 驱动版本(必须与 CUDA 版本匹配)。

  • CUDA Version:支持的 CUDA Toolkit 版本(编译 CUDA 程序时需要参考)。

  • GPU Name :显卡型号,例如 RTX 3080A100H100 等。

  • Fan:风扇转速百分比。

  • Temp:当前显卡温度。

  • Perf:性能状态(P0 ~ P12,P0 表示性能模式,P8 表示空闲模式)。

  • Pwr:Usage/Cap:当前功耗 / 最大功耗。

  • Memory-Usage:显存使用情况(已用 / 总量)。

  • GPU-Util:GPU 利用率(训练时这里会接近 100%)。

  • Compute M.:计算模式,一般是 Default。

👉 小技巧:

小贴士: nvidia-smi dmon 可输出 CSV 日志,配合 gnuplot 做性能曲线。


4. GPU 参数速查表

参数 RTX 3060 Laptop 如何影响 CUDA 编程
SM 数 30 最多并发 30 个 Thread Blocks
每 SM 最大线程数 1536 一个 Block 可放 1024 线程
共享内存 / SM 48 KB 决定 __shared__ 数组大小
L2 Cache 3 MB 频繁 __global__ 读写时影响带宽
显存带宽 336 GB/s 核函数内部访存瓶颈的主要来源

官方查询:deviceQuery 样例位于 /usr/local/cuda/samples/1_Utilities/deviceQuery,编译后运行即可。


5. 安装 CUDA Toolkit(可选阅读)

复制代码
# 1. 添加源
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
​
# 2. 下载并安装本地 deb 包
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
​
# 3. 安装 CUDA Toolkit
sudo apt-get update
sudo apt-get -y install cuda

参考博主的其他博客:【原创】Win11 + WSL2 + Ubuntu 22.04 手把手安装 CUDA 11.8(避坑版)-CSDN博客

验证:

复制代码
nvcc -V
复制代码

6. 小结 & 下集预告

Lesson 1 我们完成了: ✅ CUDA 概念大白话 ✅ nvidia-smi 工具全解析 ✅ GPU 参数速查表

📌 系列文章导航

  • Lesson 1:CUDA 概念、nvidia-smi 工具与 GPU 参数

  • Lesson 2:Hello world ------ 第一个 CUDA 程序

  • Lesson 3:CUDA 编程模型(线程、块、网格)


如果本文对你有帮助,三连(点赞/收藏/评论)就是最大的鼓励! 有任何疑问评论区见,看到必回。

相关推荐
DeeplyMind4 小时前
Linux的Dynamic debug功能
linux·dynamic debug
LJ-SEU4 小时前
win-ubuntu网络转发
linux·网络·ubuntu
QT 小鲜肉4 小时前
【个人成长笔记】在Ubuntu中的Linux系统安装 anaconda 及其相关终端命令行
linux·笔记·深度学习·学习·ubuntu·学习方法
QT 小鲜肉4 小时前
【个人成长笔记】在Ubuntu中的Linux系统安装实验室WIFI驱动安装(Driver for Linux RTL8188GU)
linux·笔记·学习·ubuntu·学习方法
CryptoRzz4 小时前
越南k线历史数据、IPO新股股票数据接口文档
java·数据库·后端·python·区块链
爱学习饼5 小时前
CentOS下安装配置JDK24和tomcat11
linux·运维·centos
学Java的bb5 小时前
MybatisPlus
java·开发语言·数据库
重生之我要当java大帝5 小时前
java微服务-尚医通-编写医院设置接口上
java·数据库·微服务
Mu.3875 小时前
初始Spring
java·数据库·spring
葡萄城技术团队5 小时前
突破Excel局限!SpreadJS让电子表格“活”起来
java·数据库·excel