显卡 | CUDA

文章目录

  • [一 显卡](#一 显卡)
    • [1 按核心用途与市场定位划分](#1 按核心用途与市场定位划分)
    • [2 按集成方式划分](#2 按集成方式划分)
    • [3 按品牌阵营划分(独立显卡市场主导者)](#3 按品牌阵营划分(独立显卡市场主导者))
    • [4 根据需求选择](#4 根据需求选择)
  • [二 CUDA(Compute Unified Device Architecture)](#二 CUDA(Compute Unified Device Architecture))
    • [1 关系](#1 关系)
    • [2 协同工作](#2 协同工作)
    • [3 总结与关键点](#3 总结与关键点)
    • [4 总结](#4 总结)

一 显卡

1 按核心用途与市场定位划分

  1. 消费级显卡
  • 定位:面向普通用户、游戏玩家、内容创作者(轻度到中度)
  • 核心厂商:
    • NVIDIA GeForce系列:如RTX 4090/4080/4070,RTX 4060,RTX 30/20系列等。
    • AMD Radeon RX系列:如RX 7900 XTX/XT,RX 7800 XT,RX 7700 XT,RX 7600,RX 6000系列等
    • Intel Arc系列:如Arc A770/A750/A580/A380
  • 核心特点:
    • 高性能游戏渲染:优化DirectX/Vulkan/OpenGL图形API,支持高分辨率、高帧率游戏
    • 图形技术:
      • 光追(Ray Tracing):NVIDIA RT Core / AMD Ray Accelerators
      • 超采样技术: NVIDIA DLSS(AI驱动)/ AMD FSR / Intel XeSS
    • 多媒体与创作:支持视频编解码(如NVENC/NVDEC,AMD VCE/VCN),轻度视频剪辑、直播推流
  1. 专业工作站显卡(专业可视化/设计卡)
  • 定位:面向工程师、建筑师
  • 影视特效师、3D设计师等专业创作者
  • 核心厂商:
    • NVIDIA RTX/Quadro系列:如RTX 6000 Ada,RTX 5000/4000,RTX A5000/A4000(Quadro品牌已逐步融入RTX)
    • AMD Radeon Pro系列:如W7900/W7800/W7700,W6800/W6600等。
  • 核心特点:
    • 专业软件认证与优化:针对AutoCAD,Maya,SolidWorks,Revit,DaVinci Resolve等工业软件进行严格测试和驱动优化,确保稳定性和兼容性
    • 高精度计算与渲染:支持OpenGL/DiretX专业模式,提供更精准的着色,抗锯齿和视图操作
    • 大显存 & ECC纠错:配备大容量显存(最高可达48GB+),部分型号支持ECC显存,防止数据错误
    • 多屏输出能力:通常支持4-6个高分辨率显示器同步输出(如4x 4K)
    • 价格昂贵
  1. 数据中心/计算加速卡(AI/HPC显卡)
  • 定位:面向人工智能训练与推理、科学计算、大数据分析、云端渲染
  • 核心厂商:
    • NVIDIA Tesla / Ampere / Hopper系列:如H100,A100,A40,L40S,T4(无视频输出接口)
    • AMD Instinct系列:如MI300X,MI250X,MI210等
    • Intel GPU Max系列(原Ponte Vecchio):如Max 1550/1100(主打HPC/AI)
  • 核心特点:
    • 极致并行计算能力:拥有数千至数万核心,专为FP64/FP32/FP16/INT8等计算精度优化
    • 高速互连技术:
      • NVIDIA NVLink(多卡高速互联,共享显存)
      • AMD infinity Fabric
      • 支持PCle4.0/5.0
    • 大显存 & HBM技术:普遍使用高带宽内存(HBM2e/HBM3),容量巨大(最高可存192GB+)
    • 专用计算技术:
      • NVIDIA Tensor Core(加速AI矩阵运算)
      • AMD Matrix Core / CDNA 架构
  • 被动散热 & 服务器形态:多位涡轮散热或被动散热,部署在服务器机架内
  • 天价

2 按集成方式划分

  1. 独立显卡(dGPU - Discrete GPU)
  • 形态:独立的板卡(插在PCle插槽上),自带显存(CDDR6/GDDRX/HBM)和散热系统
  • 优势:性能强大,可升级,适用于游戏、专业工作和高性能计算
  • 代表:上述所有消费级、专业级和数据中心卡为独立显卡
  1. 集成显卡 / 核芯显卡(iGPU - Integrated GPU)
  • 形态:GPU 集成在CPU芯片内部,共享系统主内存作为显存
  • 优势:功耗极低、成本为零(无需额外购买)、节省空间
  • 性能:仅适合日常办公、网页浏览、视频播放和及轻度游戏(如LOL)
  • 电表:
    • Intel: UHD Graphics / Iris Xe Graphics(酷睿CPU内置)
    • AMD:Radeon Graphics(Ryzen APU 如R5 5600G / R7 5700G内置)
    • Apple Silicon:M系列芯片的集成GPU(性能接近入门独显)
  1. 板载显卡(Onboard GPU)
  • 形态:GPU集成在主板芯片组上(现在已经少见,基本被CPU内置的iGPU取代)
  • 性能:通常弱于现代CPU的集成显卡

3 按品牌阵营划分(独立显卡市场主导者)

  • NVIDIA(英伟达)
    • 技术领先(尤其在AI和光追领域),市场占有率最高
    • 产品线:GeForce(消费级)、RTX / Quadro(工作站)、Tesla / H100 / A100(数据中心)
  • AMD(超威半导体)
    • 高性价比策略,开源生态(ROCm计算平台)逐渐完善
    • 产品线:Radeon RX(消费级)、Radeon Pro(工作站)、Instinct(数据中心)
  • Intel(英伟达)
    • 独立显卡市场新玩家(Arc系列),主打性价比和AI视频处理(XeSS / AV1 编码强)
    • 产品线:Arc A系列(消费级)、Intel Flex / Data Center GPU Max (数据中心)

4 根据需求选择

  1. 玩游戏 / 日常娱乐 -> 消费级显卡(GeForce / Radeon RX / Arc)
  2. 专业3D设计 / CAD / 视频后期 -> 专业共走站显卡(RTX / Quadro / Radeon Pro)
  3. AI训练 / 深度学习 / 科学计算 -> 数据中心加速卡(NVIDIA H100/A100 / AMD Instinct)
  4. 办公 / 上网 / 轻度影音 -> CPU内置集成显卡(无需额外购买)

二 CUDA(Compute Unified Device Architecture)

CUDA是NVIDIA为其图像处理器(GPU)开发的并行计算平台和编程模型,它与显卡的关系密不可分、相互成就。

1 关系

  1. CUDA 是NVIDIA GPU 量身定制的:
  • CUDA 的核心目标是解锁NVIDIA GPU强大的并行计算能力,使其不再局限于图形渲染,而成为通用的计算处理器(GPGPU)
  • CUDA 的架构设计、指令集、内存模型等都紧密贴合NVIDIA GPU的硬件架构(如流多处理器SM、CUDA核心、Tensor Core、RT Core、内存层次结构等)
  • 只能在NVIDIA GPU上运行,CUDA程序无法直接在AMD或Intel的GPU上运行(它们有自己的平台如ROCm、oneAPI)
  1. NVIDIA GPU是CUDA运行的物理基础
  • GPU提供了执行CUDA程序所需的海量并行计算核心(CUDA Cores)、高速内存(显存/Global Memory)、专用缓存(Shared Memory,L1/L2 Cache )以及高带宽互连
  • GPU的硬件特性(如SIMT执行模型、硬件线程调度、细粒度并行)是CUDA编程模型能够高效工作的前提

2 协同工作

  1. 硬件架构映射:
  • CUDA Core:是NVIDIA GPU中最基本的处理单元,执行浮点和整数运算指令。CUDA编程模型中的线程最终会映射到这些物理核心上执行
  • String Multiprocessor:GPU的核心计算单元。每个SM包含多个CUDA Core、寄存器文件、共享内存、纹理/常量内存缓存、指令调度器等。CUDA中的线程快会被调度到某个SM上执行,并独占SM内的资源(如共享内存、寄存器)
  • 内存层次:
    • 寄存器:最快,每个线程私有。在CUDA内核中声明的自动给变量通常存储在寄存器中。
    • 共享内存:位于SM内部,速度极快,由同一个线程快内的所有线程共享,用于线程间高效通信和协作
    • L1缓存 / Shared Memory:与共享内存共享物理空间,可配置比例
    • L2缓存:所有SM共享,用于缓存对全局内存的访问
    • 全局内存:CPU的主内存(显存),容量大但延迟高带宽高。所有线程(跨网格)都可以访问,但需要优化访问模式(合并访问)
    • 常量内存:只读,有专用缓存,适合存储所有线程都读取的常量数据
    • 纹理内存:最初为图形设计,提供特殊寻址模式和硬件滤波,也可用于通用计算,有缓存
  • 互连:高速的NVLink或PCle总线用于连接GPU与CPU内存以及其他GPU
  1. CUDA软件栈
  • CUDA工具包:包含编译器nvcc、调试器、性能分析器、数学库等开发工具
  • CUDA运行时API:提供管理设备、内存、执行内核等核心功能的函数库(如cudaMalloc、cudaMemcpy,<<<>>>内核启动语法)
  • CUDA驱动API:更底层、更灵活的接口,运行时API构建在其之上
  • CUDA库:高度优化的库,如cuBLAS(线性代数)、cuFFT(快速傅里叶变换)、cuDNN(深度学习)、Thrust(并行算法模板库)等
  • 编程语言扩展:主要基于C/C++,通过函数修饰符(global ,device ,host)和内置变量(threadIdx,blockIdx等)扩展语法
  1. 执行模型
  • 内核:在GPU上并行执行的函数,用__global__修饰
  • 线程层次:
    • 线程:最基本的执行单元
    • 线程块:一组协作线程。共享同一块共享内存,可以同步。被调度到一个SM上执行
    • 网格:由多个线程块组成,一个内核启动对应一个网络
  • SIMT:单指令多线程。一个SM在同一时刻将一条指令广播给一组线程(通常是32个线程,称为一个Warp)执行。虽然一条指令控制一组线程,但每个线程都有自己的指令计数器、寄存器状态,并能独立执行分支路径(尽管分支发散会降低效率)
  1. 开发流程:
    1. 在主机端(CPU)分配和初始化数据
    1. 使用cudaMalloc在设备端(GPU)分配显存
    1. 使用cudaMemcpy将数据从主机内存复制到设备显存
    1. 使用<<<grid,block>>>语法配置并启动CUDA内核(在GPU上执行)
    1. 内核中的代码由成千上万个线程并行执行,处理设备显存中的数据
    1. 使用cudaMemcpy将结果设备显存复制回主机内存
    1. 释放设备端和主机端的内存

3 总结与关键点

  • CUDA是桥梁:它架起了程序员与NVIDIA GPU强大并行计算能力之间的桥梁。没有CUDA(或其他类似平台),GPU的通用计算能力难以被高效、便捷地利用
  • NVIDIA GPU基石:CUDA的所有功能和性能都依赖于底层NVIDIA GPU的硬件架构和支持。显卡的性能指标(核心数量、频率、显存带宽、架构特性)直接决定了CUDA程序能够多块
  • 软硬件协同优化:CUDA的成功在于其编程模型于NVIDIA GPU硬件架构的深度协同设计。理解硬件特性(如内存层次、Wrap执行)对于编写高性能CUDA代码至关重要
  • 生态系统:CUDA不仅是一个编程模型,更是一个庞大的生态系统(工具、库、文档、社区),极大地推动了GPU在高性能计算、人工智能、科学计算等领域的普及应用

4 总结

  • CUDA在NVIDIA提供的一套软件工具和编程接口,专门用于在其生产的显卡(GPU)上进行通用并行计算。
  • 没有NVIDIA显卡,CUDA无法运行;没有CUDA(或类似平台),NVIDIA显卡的通用计算能力难以被有效利用。它们是共生共荣的关系

如若存在错误的表述,欢迎指正

相关推荐
碧海潮生_CC1 天前
【CUDA笔记】04 CUDA 归约, 原子操作,Warp 交换
笔记·cuda
fpcc5 天前
并行编程实战——CUDA编程的流的优先级
c++·cuda
碧海潮生_CC6 天前
【CUDA笔记】03 CUDA GPU 架构与一般的程序优化思路(下)
笔记·架构·cuda
中医正骨葛大夫7 天前
一文解决如何在Pycharm中创建cuda深度学习环境?
pytorch·深度学习·pycharm·软件安装·cuda·anaconda·配置环境
寅双木8 天前
自己配一台电脑——显卡
笔记·显卡·显卡电路板·显卡散热·显卡组成·显卡接口·pcle接口
lvxiangyu1112 天前
wsl2 ubuntu24 opengl 无法使用nvidia显卡 解决方法记录
wsl·cuda·opengl
李昊哲小课12 天前
wsl ubuntu24.04 cuda13 cudnn9 pytorch 显卡加速
人工智能·pytorch·python·cuda·cudnn
wanzhong233314 天前
CUDA学习2-CPU和GPU的性能优化
深度学习·gpu·cuda·高性能计算
碧海潮生_CC19 天前
【CUDA笔记】01-入门简介
笔记·cuda
喆星时瑜22 天前
关于 ComfyUI 的 Windows 本地部署系统环境教程(详细讲解Windows 10/11、NVIDIA GPU、Python、PyTorch环境等)
python·cuda·comfyui