注:本版关于GPU的内容均是是经过实测数据提供,具有版权所有

简介: GPU与CPU貌似差别不大的两个东西,然而,从逻辑结构,到原理,到性能,到功能,再到在物理设备中扮演的角色来讲,压根就不是同一个东西,甚至可以说,完全不可以类比。

首先考虑GPU利用率:
因为要对GPU物理设备进行压力测试和功耗测试,那么就需要设定GPU利用率分别为25%,50%,75%,100%类似的参数,那么这样的利用率,又意味着什么东西的利用率呢?


为了了解GPU,那么先认识一下CPU利用率相关的内容。

CPU结构介绍

我们都知道,CPU是由运算器和控制器两部分组成。

运算器就是执行加减乘除运算的 与,或,非门,不管移交什么样的命令,到最后都是转换成了这样最朴素的运算操作。他所执行的所有命令,都是通过控制器,传送要执行命令的地址,从地址中取数据,

如下图,参考:http://blog.csdn.net/yang_yulei/article/details/22529437

CPU时钟周期和CPU利用率

这是整个CPU的处理指令过程,CPU还有一个始终周期,通常在几个时钟周期内,会完成这些操作,但遇到中断,等待,空载等情况发生的时候,其实时钟会进行空转,CPU的利用率,就是指,有多少时钟周期进行了指令执行,计算方式也是,从任务提交到任务当前执行时间,所使用了多少CPU的时钟进行任务计算,那CPU占用率就是指:

CPU占用率= 任务执行消耗的时钟周期/ 从任务提交到当前CPU总的时钟周期。

那么,单个CPU的占用率就是,对于该任务来讲,消耗的时钟周期占OS从该任务提交到目前时间时钟周期的比例。


GPU的利用率。

然而,对于GPU来讲,并不存在时钟周期这样的概念,那GPU的利用率从何而来。

GPU对任务的执行相当于cpu将任务移交给GPU,那GPU就对任务进行执行,不管任务量与任务规模,不具备调度或者其他的CPU特性具有的一些能力。打个比方,比如你有一个电灯,那打开或关闭,就只有两个状态,GPU对涉及的数据缓存在GPU内存中,并且对他们进行并行计算。

那它简单的并行计算能力是有了,然而,它并不具备CPU的很多高级特性,而这些高级特性决定了只有CPU是电脑的神经中枢,而GPU只能是一个计算元件而已。

可以进行一个简单的测试,就明白了GPU与CPU的能力差别有多大。

测试环境:

512G内存,20核,8张V100卡。centos7.3 系统,

GPU卡的单卡数据缓存空间为16G,我运行nbody程序,将计算数据量设定超过16G的时候,
所有的卡停止工作。 这就意味着,这些卡没有任何的数据缓存能力,调度能力,中断能力,等等。

为何会停止工作呢?因为对于CPU来讲,这些都是计算,重复的计算,并且数据量本身并没有达到16G,所以就全部调度到了GPU上面来执行,然而GPU会对数据迭代并缓存,会在几次迭代之后把缓存空间撑满,其实可以看到GPU并不是一次性达到超负荷的,而是停几秒,观测到GPU内存使用空间不断上升,而之后,GPU就停止工作了。

但CPU就不会出现,因为对于用户进程提供的内存空间,都是经过几级映射形成的虚拟空间,所以,几乎就是可以被用户进程认为是无限大的,可以随时进行切换,随时调度执行,让用户感知不到下层的一些变化。


因此,在简单的1+1计算方面,GPU通过几千个具有简单计算能力的核心,实现了许多基本逻辑的并行能力,而对于CPU这个大神,他就全身心的处理复杂的逻辑。打个比方,如果CPU是个教授,不仅会加减乘除,还会解方程,还可以积分微分,还会矩阵迭代等,然而CPU会处理复杂任务能力强,但成本高啊,雇佣一个教授总是处理并行计算中的1+1多不划算啊,把很多复杂的任务都分开来进行,有很多是并行进行1+1运算的,那就不如搞几十个小学生来计算1+1. 现在V00,等都向通用计算能力转型,也可以看到下学生也在向中学生发展。但是它本身的架构决定了它的应用场景,也处理复杂任务的限制。

下图是关于GPU卡不同型号对应不同的参数整理的表格。

GPU卡型号 CUDA核 GPU缓存(GB) 性能 SP(TFLOPS) 功耗W
K80 4992 24 5.6 250
K40 2880 12 4.29 235
M40 3072 12、24 7 250
M4 1024 4 2.2 50-75
M60 4096 16 9.7 225-300
P100 3584 16 9.3 250
P40 3840 24 12 250
P4 2560 8 5.5 50-75
V100 5120 16 14 250

上图可知,P100和V100在堆叠数千计的核的时候,功耗也上去了,正常情况下,一台服务器的功率不超过500W,其实500W已经属于很高了,250W是个什么概念呢,这么说吧,一台机器配有8张V100卡,那么整台机器全部卡在运行的时候,功耗数据就会达到3000W以上。3KW,兄弟,这可不是闹着玩的,就是这样一台机器,耗电达到了3KW,基本上供电都是很难满足的。
这也是P100向V100发展的时候,核心数量不再无限制的增多了,而转向tensor核的研发和应用。

其实想想看,nvidia做的这样一整套系统提供了这么高的计算能力,研发出来这么好的东西,最后P100和V100的何去何从,不知道到最后会不会死在了这个最基本的问题,供电能力上面。


从CPU与GPU利用率,到GPU与CPU差别的思考相关推荐

  1. 强化学习技巧四:模型训练速度过慢、GPU利用率较低,CPU利用率很低问题总结与分析。

    1.PyTorchGPU利用率较低问题原因: 在服务器端或者本地pc端, 输入nvidia-smi 来观察显卡的GPU内存占用率(Memory-Usage),显卡的GPU利用率(GPU-util),然 ...

  2. 深度学习PyTorch,TensorFlow中GPU利用率较低,CPU利用率很低,且模型训练速度很慢的问题总结与分析

    在深度学习模型训练过程中,在服务器端或者本地pc端,输入nvidia-smi来观察显卡的GPU内存占用率(Memory-Usage),显卡的GPU利用率(GPU-util),然后采用top来查看CPU ...

  3. GPU利用率与使用率

    GPU利用率 广义的GPU利用是指对GPU利用率效率,包括GPU空间和时间上的利用效率. 狭义的GPU利用率是指GPU时间片上的利用率: GPU可用的物理资源有哪些? GPU可利用资源:SM (计算单 ...

  4. 聊聊GPU利用率那些事

    引言 众所周知,GPU本身的计算能力是越来越强大,特别是新一代的NVIDIA AMPERE架构发布之后,又一次刷新了大家对AI算力的认知.目前,确实有不少大规模分布式训练对更大算力的渴求是极其强烈的, ...

  5. 电脑有GPU,安装tensorflow-GPU后运行代码,GPU利用率基本为0,而CPU利用流程占满了

    注意:若程序刚开始运行以下代码时,结果显示无可用GPU,无其他毛病(如tensorflow版本和cuda,cudnn版本不对应,电脑无可用GPU等)前提下,应将程序关闭重启,之后再运行下面的代码,看结 ...

  6. tensorflow gpu利用率为0_训练效率低?GPU利用率上不去?快来看看别人家的tricks吧...

    前言 首先,如果你现在已经很熟悉tf.data+estimator了,可以把文章x掉了╮( ̄▽ ̄"")╭ 但是!如果现在还是在进行session.run(..)的话!尤其是苦恼于G ...

  7. 跑python gpu利用率低_训练效率低?GPU利用率上不去?快来看看别人家的tricks吧~...

    前言 首先,如果你现在已经很熟悉tf.data+estimator了,可以把文章x掉了╮( ̄▽ ̄"")╭ 但是!如果现在还是在进行session.run(..)的话!尤其是苦恼于G ...

  8. 多个cuda 被单进程沾满_报名 | 提高GPU利用率,听英伟达专家分享这个CUDA工具

    随着 NVIDIA GPU 计算性能的不断提升,如何提升 GPU 利用率是开发者普遍关心的问题之一.从 Kepler 架构开始,NVIDIA GPU 支持多个 CUDA kernels 函数的并发执行 ...

  9. 训练效率低?GPU利用率上不去?快来看看别人家的tricks吧~

    前言 首先,如果你现在已经很熟悉tf.data+estimator了,可以把文章x掉了╮( ̄▽ ̄"")╭ 但是!如果现在还是在进行session.run(..)的话!尤其是苦恼于G ...

最新文章

  1. HP 服务器 iLO 远程控制软件 介绍
  2. Lora和Zigbee无线通讯技术的对比
  3. validator的Symbol Coverage没有100%
  4. vsftpd 配置:chroot_local_user与chroot_list_enable详解
  5. 十亿级视频播放技术优化揭密
  6. HDU 2065 红色病毒问题(生成函数)
  7. BZOJ 1012: [JSOI2008]最大数maxnumber 单调队列/线段树/树状数组/乱搞
  8. Nim游戏的一个扩展——51nod 1661 黑板上的游戏+LA 5059 Playing With Stones
  9. ubuntu高版本环境变量问题
  10. arduino uno电压_Arduino UNO中文数据手册
  11. 如何用Chrome自带的截屏功能截取超过一个屏幕的网页 1
  12. 收藏:40个Linux运维面试经典基础问题!
  13. 数字电子技术基础-阎石老师版本-学习记录
  14. 微商分销代理新零售商城源码
  15. 操作系统原理第五章(资源分配与调度)
  16. 在线将PDF极速转换为图片
  17. fan4801开关电源原理图_开关电源各模块原理实图讲解精编版
  18. MedianFlow代码 程序示例
  19. 中国网络游戏上市突击大事记
  20. ELDER-RAY (多头力度和空头力度)

热门文章

  1. 【满分】【华为OD机试真题2023 JAVAJS】MVP争夺战
  2. 真正的成熟是怎样的?
  3. 为大家学习Flutter,阿里操碎了心
  4. tiktok怎么关闭动态图片
  5. Linux进程通信之信号量 控制进程同步
  6. java通过freemarker和ftl模板导出word换行问题
  7. 华为鸿蒙及hml概念股,鸿蒙javascript项目开发----呼吸计时训练(基于华为轻量级运动手表)...
  8. url在线编码和解码
  9. Mac操作系统配置环境变量的图形化操作方法
  10. PropTypes使用