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


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

相关推荐
java_logo1 小时前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
广州灵眸科技有限公司8 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
憧憬成为web高手11 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
HLC++11 小时前
Linux的进程间通信
android·linux·服务器
段一凡-华北理工大学11 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
华清远见IT开放实验室12 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
oradh13 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
z1234567898614 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD14 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
java_logo14 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程