【操作系统】GPU操作 - hippowc/hippowc.github.io GitHub Wiki

概述

GPU开放编程之后,应用范围越来越广,大量的数据进行运算,通过GPU硬件及相关以CUDA为基础的算法结合,皆可大幅缩短时间

GPU加速原理很简单:通过CUDA算法先将数据从主机内存复制到GPU内存,接着第二步CPU会呼叫GPU开始进行计算,计算完成后CPU又指派GPU将存放在GPU内存中的计算结果回传至主机内存

通过GPU运算为何可达到加速效果

GPU和CPU本质上有很大的不同,CPU具有较大的缓存(cache)和较快的计算核心,可以处理较复杂的运算。

GPU缓存较小且单核心计算速度也没有CPU快,但是GPU具有大量的计算核心(通称CUDA Core),其优势在于适合进行同时间的大量运算,一颗顶级的CPU核心数量可达56核心(Intel Xeon Platinum 9282),计算线程(Threads)达112,但低阶的GPU(如Quadro P620)的核心数就有512(GPU的核心数等于计算线程数量)

GPU在计算时所有核心可高度平行进行计算,而CPU则是以顺序性(sequential)的方式进行计算。GPU是专为图像处理所需的计算密集、高度并行计算设计的。

GPU的使用方式

  • NVIDIA官方函数库
    • 矩阵计算函数库cuBLAS
    • 频率分析函数库cuFFT
    • 深度学习函数库cuDN
  • 自行编程CUDA
    • C/C++
    • Python
      • PyCuda或是使用Numba函数库

使用

Nvidia-smi使用

第一行 版本信息
NVIDIA-SMI 460.73.01    Driver Version: 460.73.01    CUDA Version: 11.2
<标题> <驱动版本> <CUDA版本>

第二行 标题栏
第三行 具体显卡信息,如果有多个显卡,就会有多行
<GPU>: GPU编号
<Name>: 显卡名称,如:Tesla V100
<Persistence-M>: 持续模式的状态开关,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少
<Fan>: 风扇转速
<Temp>: 显卡温度
<Perf>: 性能状态,从P0到P12,P0性能最大,P12最小
<Pwr>: 能耗表示

<Bus-Id>: 涉及GPU总线的相关信息。
<Disp.A>: 是Display Active的意思,表示GPU的显示是否初始化。
<Memory-Usage>: 显存的使用率,PS:MB与MiB的区别,MB以10为底数,MiB以2为底数

<GPU-Util>: GPU的利用率。
<Compute M.>: 计算模式。

最后一行:Process显示每块GPU上每个进程所使用的显存情况

相关命令

nvidia -l : 实时刷新
⚠️ **GitHub.com Fallback** ⚠️