NVIDIA GPU显卡类型介绍及使用Pytorch训练实战

大模型机器学习数据库

picture.image

  • NVIDIA GPU 分类
  • 消费级(GeForce)

:适合中小型 AI 项目与个人开发者(如 RTX 4090/4080),性价比高但显存和专业优化有限。

  • 数据中心级(A/H 系列)

:面向大规模训练与推理(如 A100/H100),支持多卡互联(NVLink)、更大显存(HBM3)和专业库(CUDA/CuDNN)。

  • 专业级(RTX A 系列)

:平衡图形渲染与 AI 计算(如 RTX A6000),适合多任务开发场景。

01

NVIDIA参数

GPU主要资源:

  1. 计算核心CUDA core、显存、BAR、Channel
  2. 安装完NVIDIA的驱动后,可以输入命令nvidia-smi查看显卡参数:

(使用本地3090卡测试)

picture.image

参数解释:

  • GPU:GPU 编号,从 0 开始,这里显示 0 - 6 共 7 0 - 6 共 7 块 GPU 。

  • Name:GPU 型号,均为 NVIDIA GeForce RTX 3090

  • Fan:风扇转速百分比,如 32% 表示风扇以 32% 转速运行 。

  • Temp:GPU 温度,单位摄氏度,如 27C 即 27 度 。

  • Perf:性能状态,P8 代表低功耗空闲状态(不同数字对应不同性能 / 功耗等级 )。

  • Persistence-M:持久模式状态,Off 表示未启用(启用后可加快 GPU 应用启动速度 )。

  • Pwr:Usage/Cap:功耗,32W / 350W 表示当前用 32W,功耗上限 350W 。

  • Bus-Id:GPU 在总线中的位置标识,用于系统识别,如 00000000:1A:00.0

  • Disp.A:显示激活状态,Off 表示无显示输出(常用于服务器 GPU,专注计算不用显示 )。

  • Memory-Usage:显存使用,2MiB / 24576MiB 指已用 2MiB,总显存 24576MiB(约 24GB )。

  • Volatile Uncorr. ECC:易失性未纠正错误,N/A 因消费级 GPU(RTX 3090 )一般不支持 ECC 校验 。

  • GPU-Util:GPU 利用率,0% 表示当前无计算任务,GPU 空闲 。

  • Compute M.:计算模式,Default 为默认模式 ;MIG M.:多实例 GPU 模式状态,N/A 表示未启用该功能 。

进程信息区(Processes

  • 显示当前占用 GPU 的进程,这里 No running processes found 表示没有进程在使用 GPU,进一步说明 GPU 处于空闲状态 。

整体来看,这 7 块 RTX 3090 GPU 均处于低负载空闲状态,无计算任务运行,温度、功耗都较低 。

  1. 查看GPU卡间通信方式(NVLINK或是PCI)

如果要看NVIDIA是否支持NVLINK或是通信方式,可以使用以下命令:

  
nvidia-smi topo -m

picture.image

02

使用pytorch测试GPU推理

  
import torch  
  
def check_cuda_availability():  
    """检查并打印PyTorch CUDA可用性及相关信息"""  
    # 检查CUDA是否可用  
    cuda_available = torch.cuda.is_available()  
    print(f"CUDA可用状态: {cuda_available}")  
      
    if cuda_available:  
        # 获取CUDA版本  
        cuda_version = torch.version.cuda  
        print(f"CUDA版本: {cuda_version}")  
          
        # 获取可用GPU数量  
        gpu_count = torch.cuda.device_count()  
        print(f"可用GPU数量: {gpu_count}")  
          
        # 打印每块GPU的详细信息  
        for i in range(gpu_count):  
            gpu_name = torch.cuda.get_device_name(i)  
            gpu_memory = torch.cuda.get_device_properties(i).total_memory / 1024**3  # 转换为GB  
            print(f"GPU {i}: {gpu_name}, 总显存: {gpu_memory:.2f} GB")  
          
        # 检查当前使用的GPU  
        current_device = torch.cuda.current_device()  
        print(f"当前使用的GPU: {torch.cuda.get_device_name(current_device)}")  
          
        # 测试GPU计算能力  
        x = torch.tensor([1.0, 2.0]).cuda()  
        y = torch.tensor([3.0, 4.0]).cuda()  
        z = x + y  
        print(f"GPU计算测试结果: {z}")  
    else:  
        print("CUDA不可用,检查是否安装了正确的CUDA驱动和PyTorch版本")  
        print("提示: 确保PyTorch版本与CUDA版本兼容")  
  
if __name__ == "__main__":  
    check_cuda_availability()

输出如下:

  
python pytorch.py  
CUDA可用状态: True  
CUDA版本: 12.1  
可用GPU数量: 7  
GPU 0: NVIDIA GeForce RTX 3090, 总显存: 23.69 GB  
GPU 1: NVIDIA GeForce RTX 3090, 总显存: 23.69 GB  
GPU 2: NVIDIA GeForce RTX 3090, 总显存: 23.69 GB  
GPU 3: NVIDIA GeForce RTX 3090, 总显存: 23.69 GB  
GPU 4: NVIDIA GeForce RTX 3090, 总显存: 23.69 GB  
GPU 5: NVIDIA GeForce RTX 3090, 总显存: 23.69 GB  
GPU 6: NVIDIA GeForce RTX 3090, 总显存: 23.69 GB  
当前使用的GPU: NVIDIA GeForce RTX 3090  
GPU计算测试结果: tensor([4., 6.], device='cuda:0')

至此已经验证了NVLINK GPU的训练验证,如果GPU无法训练,torch.cuda.is_available()会显示是false。

上述代码也基本是用来测试卡是否能正常使用的代码。这个代码跑通后,基本上训练相关的代码也能正常。

以下是训练代码示例:

picture.image

03

卡发展历程及命名

NV 核心阶段:1999 年底,英伟达推出了 NV10 核心的显卡产品 GeForce256,该产品被认定为首款 GPU(图形处理器),其硬件图形加速和变换 - 照明(T&L)功能,将图形处理的任务从 CPU 中解放出来。之后逐步发展,2000 年推出 NV11、NV15、NV16 核心的 GeForce2;2001 年发布 NV20 核心的 GeForce3;2002 年推出 NV17、NV18、NV19、NV25、NV28 核心的 GeForce4。

微架构阶段

Kelvin(开尔文):2001 年问世,首次应用于搭载 NV2A GPU 的 XBOX 游戏主机,GeForce 3 和 GeForce 4 系列 GPU 也是以 Kelvin 微架构为基础进行发布的。

Rankine(兰金):2003 年推出,是 Kelvin 微架构的后续版本,应用于 GeForce 5 系列产品,引入了对顶点和片段程序的支持,将显存(VRAM)的大小扩展至 256MB。

Curie(居里):2004 年发布,是 Rankine 微架构的继任者,用于 GeForce 6 和 7 系列 GPU,将显存容量翻倍至 512MB,是支持 PureVideo 视频解码的第一代 NVIDIA GPU。

Tesla(特斯拉):2006 年发布,被应用于 GeForce 8、9、100、200 和 300 系列 GPU,以及 Quadro 系列 GPU,为 NVIDIA 显卡带来了优化的性能和功能。

Fermi(费米):2010 年发布,引入了支持 512 个 CUDA 内核、64KB RAM 和分区 L1 缓存 / 共享内存的能力、支持纠错码(ECC)等增强功能。

Kepler(开普勒):2012 年发布,引入了全新的流式多处理器架构 SMX,带来了对 TXAA(一种抗锯齿方法)的完整支持,CUDA 核心数显著增加到 1536 个,还实现了更低的功耗效率等改进。

Maxwell(麦克斯韦尔):2014 年问世,相对于 Fermi 架构,在多处理器效率、专用共享内存容量、本地共享内存原子操作等方面有了增强。

Pascal(帕斯卡):2016 年发布,在 Maxwell 的基础上,引入了支持 NVLink 通信的能力,采用了高带宽内存 2(HBM2)技术,实现了计算抢占功能,引入了动态负载均衡机制。

Volta(伏特):2017 年发布,严格针对专业级市场,是第一个使用 Tensor Cores 的微架构,Tensor Cores 用于执行矩阵运算,以支持 AI 和深度学习应用。

Turing(图灵):2018 年发布,支持 Tensor Cores,并首次加入 RT Core,支持实时光线追踪,用于 NVIDIA 流行的 Quadro RTX 和 GeForce RTX 系列 GPU。

Ampere(安培):2020 年 5 月推出,旨在进一步提升光线追踪运算、高性能计算(HPC)和 AI 运算的能力,增强功能包括第 3 代 NVLink 和 Tensor Core 等。

Ada Lovelace:2022 年 9 月的 GTC22 大会上首次发布,应用于 GeForce RTX 40 系列显卡,所配备的 GPU 流式多处理器拥有高达 83 TFLOPS 的着色器性能,吞吐量相较于前一代产品提升了 2 倍。

04

产品特点

强大的图形处理能力:能够快速渲染高质量的 3D 图形,为游戏玩家提供流畅、逼真的游戏画面,也能满足专业图形设计师、视频编辑师等对高精度图形处理的需求。例如,GeForce RTX 40 系列显卡在运行一些大型 3A 游戏时,能够实现高帧率、高分辨率的画面输出,让玩家体验到更加细腻、生动的游戏场景。

支持光线追踪技术:从 GeForce RTX 系列开始,显卡支持实时光线追踪,能够模拟真实世界中的光线传播和反射,使游戏中的光影效果更加真实自然,为玩家带来沉浸式的游戏体验。如在《赛博朋克 2077》等支持光线追踪的游戏中,开启光线追踪功能后,游戏中的建筑、车辆等物体的反射、折射效果更加逼真,仿佛置身于真实的未来城市中(nvidia.com)。

AI 加速功能:借助 NVIDIA 的 CUDA 架构和 Tensor Cores,GeForce 显卡能够加速人工智能任务,如深度学习、AI 渲染等。在创作领域,创作者可以利用 AI 加速功能快速生成高质量的图像、视频内容;在游戏中,AI 技术还可以用于优化画质、提高帧率等,如 DLSS(深度学习超级采样)技术(nvidia.com)。

高显存带宽和大容量显存:配备了高速的 GDDR 显存,提供了高显存带宽,能够快速传输大量的图形数据,同时大容量的显存可以支持更高分辨率的纹理和更复杂的场景。例如 GeForce RTX 3080 显卡拥有 10GB 的 GDDR6X 显存,320bit 的位宽,能够满足游戏在 4K 分辨率下的运行需求。

05

最后

从消费级显卡的快速验证到数据中心级 GPU 的大规模训练,NVIDIA GPU 生态已成为 AI 开发的基础设施。PyTorch 凭借其动态图特性与 CUDA 深度整合能力,让开发者能够高效释放 GPU 算力。未来,随着 H200(Hopper 架构迭代)、Blackwell 等新一代硬件的推出,以及 PyTorch 3.0 等版本的优化,AI 训练将迈向更高效率、更低成本的新范式。

实践建议 :选择一块适合的 GPU(如 RTX 4060 起步),从 MNIST 手写识别等简单任务开始,逐步挑战 CIFAR-10 图像分类、NLP 情感分析等项目,在实战中积累调参、显存优化与分布式训练经验。AI 开发的核心不仅是理论知识,更是 “让模型跑起来、跑得好” 的工程能力 —— 而这一切,都始于一次勇敢的代码尝试。

如果觉得作者的分享有意义,请点赞关注。

往期推荐:

picture.image

一文讲清楚大模型中6个关键词及原理:LLM、Transformer、Bert、预训练、微调FineTuning、机器学习

picture.image

算力平台应该怎么做,如何快速从0到1做出一个可以满足训练推理的算力平台

picture.image

如何使用云原生的方式做模型服务自动化?结合HP云模型实践看看内部结构详细方案

picture.image

训推平台是什么、有什么用、该怎么做,业内现状如何

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
火山引擎大规模机器学习平台架构设计与应用实践
围绕数据加速、模型分布式训练框架建设、大规模异构集群调度、模型开发过程标准化等AI工程化实践,全面分享如何以开发者的极致体验为核心,进行机器学习平台的设计与实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论