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


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

相关推荐
摩羯座-185690305948 小时前
VVIC 平台商品详情接口高效调用方案:从签名验证到数据解析全流程
java·前端·数据库·爬虫·python
论迹8 小时前
【Redis】-- 分布式锁
数据库·redis·分布式
沉迷技术逻辑8 小时前
Redis-实现分布式锁
数据库·redis·缓存
小志开发9 小时前
SQL从入门到起飞:完整数据库操作练习
数据库·sql·学习·oracle·sqlserver·navicat
或与且与或非9 小时前
rust使用sqlx示例
开发语言·数据库·rust
王不忘.9 小时前
MySQL 数据库核心知识点详解
数据库·mysql
时序数据说10 小时前
时序数据库 IoTDB:支撑万亿级物联网设备的基石
大数据·数据库·物联网·时序数据库·iotdb
橙-极纪元10 小时前
11种数据库类型详解-第3种:时序数据库(TSDB)
数据库·时序数据库
摆个烂10 小时前
时序数据库深度解析:从基础概念到未来趋势
数据库·时序数据库
时序数据说10 小时前
哪些行业需要使用时序数据库?
大数据·数据库·物联网·时序数据库