显卡 | 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显卡的通用计算能力难以被有效利用。它们是共生共荣的关系

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

相关推荐
William.csj4 天前
Pytorch/CUDA——flash-attn 库编译的 gcc 版本问题
pytorch·cuda
野蛮人6号6 天前
如何查看自己电脑的CUDA版本?
cuda
CJ点17 天前
FFmpeg命令全解析:三步完成视频合并、精准裁剪、英伟达显卡加速
ffmpeg·显卡·合并·amd·英伟达·裁剪
SHIPKING39317 天前
【CUDA&cuDNN安装】深度学习基础环境搭建
人工智能·深度学习·cuda·cudnn
咩咩大主教21 天前
2025最新版使用VSCode和CMake图形化编译调试Cuda C++程序(保姆级教学)
c++·vscode·cmake·visual studio·cuda·cpp·cuda c++
量化投资和人工智能23 天前
【CUDA编程】OptionalCUDAGuard详解
c++·人工智能·python·机器学习·云计算·cuda
weiwei2284425 天前
VS2019+CUDA12.5入门
gpu·vs2019·cuda
爱串门的小马驹1 个月前
VScode编译调试debug,gpu的cuda程序,Nsight
vscode·gpu·cuda
阿巴阿阿巴巴巴巴1 个月前
【深度学习相关安装及配环境】Anaconda搭建虚拟环境并安装CUDA、cuDVV和对应版本的Pytorch,并在jupyter notebook上部署
人工智能·pytorch·python·深度学习·jupyter·cuda