【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 编程模型(线程、块、网格)


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

相关推荐
IndulgeCui13 小时前
【金仓数据库产品体验官】KingbaseES-ORACLE兼容版快速体验
数据库
xhbh66613 小时前
【超全汇总】MySQL服务启动命令手册(Linux+Windows+macOS)(上)
数据库·mysql·程序员·mysql启动命令·数据库启动命令
czhc114007566314 小时前
Linux 830 shell:expect,ss -ant ,while IFS=read -r line,
linux·运维·r语言
滴滴滴嘟嘟嘟.14 小时前
嵌入式Linux驱动开发:蜂鸣器驱动
linux·运维·驱动开发
梅见十柒15 小时前
UNIX网络编程笔记:共享内存区和远程过程调用
linux·服务器·网络·笔记·tcp/ip·udp·unix
2301_8035545215 小时前
mysql(自写)
数据库·mysql
麦麦大数据16 小时前
vue+Django 双推荐算法旅游大数据可视化系统Echarts mysql数据库 带爬虫
数据库·vue.js·django·可视化·推荐算法·百度地图·旅游景点
成都极云科技16 小时前
裸金属服务器与虚拟机、物理机的核心差异是什么?
运维·服务器·数据库
溯光笔记16 小时前
服务器内网穿透NPS搭建过程 - 服务端linux服务器 客户端windows系统 - 溯光笔记
linux·服务器·windows