注:本版关于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. 搞懂OpenLDAP
  2. 开年赢好运!程序员加油包等你免费拿
  3. thinkphp 第二节
  4. php调用不存在的方法,php如何调用不存在的方法
  5. (转)Spring Boot通过ImportBeanDefinitionRegistrar动态注入Bean
  6. redis数据批量导入导出
  7. java编程字_Java编程基本概念
  8. 多位院士、院士候选人入选,132人拟获表彰!
  9. 工作分析文献综述_北大教授分析了124 篇不合格硕士学位论文,发现了6个典型问题!...
  10. 吴征:只为寻找到杨澜
  11. ios uitableview 积累
  12. arduino编码器计数_【Arduino】旋转编码器的Arduino使用方法
  13. Swift -- AVPlayerViewController播放本地视频并且通知重复播放
  14. 实用金属材料手册_各种金属材料单位重量计算公式(汇总版)
  15. 【WINDOWS / DOS 批处理】添加注释
  16. Dorado 7 Ajax 交互处理
  17. 手机app通用模板蓝色系用户登录页面
  18. 安卓手机软件性能测试,手机性能评测软件
  19. C# 扫描枪扫描条形码与二维码
  20. js之捕捉冒泡和事件委托

热门文章

  1. js 判断某个条件和另一个条件相等时返回需要的数据
  2. csgo本地服务器修改武器伤害,CSGO武器伤害值计算告诉你是怎么死的
  3. 盗墓诡闻录服务器维护,幽行玄城摸金校尉职业厉不厉害 盗墓诡闻录摸金校尉技能解析...
  4. JPA的动态SQL IF判断
  5. ZZULIOJ.1108: 打印数字图形(函数专题)
  6. Unity 加载StreamingAssets 文件夹下批量图片
  7. echarts 图例文字添加背景
  8. 华为鸿蒙是系统还是处理器,华为将发布MatePad Pro:搭载鸿蒙系统,麒麟9000处理器...
  9. msf连接mysql数据库_msf链接数据库
  10. 当当api接口 Alex19970108016微信同步