CPU与CUDA(GPU)的计算能力对比之一: Tensorflow矩阵乘

结论:
1.Tensorflow 矩阵乘场景,CUDA 的效率是 CPU 的 1000 倍以上。
2. 测试过程中: GPU峰值占用率能够达到100%, CPU峰值占用率最高(观测到的)为51% , 大部分时间在20%以下。
3. 本测试不涉及 神经网络/深度学习/机器学习算法 , 仅为简单的矩阵乘(1亿 行元素 * 1 亿列元素)

环境概要:
CPU 9750 i7 ,32G 内存;
GPU Nvidia RTX2070 (8G显存)
Tensorflow 版本:2.3.1
CUDA 版本:10.1
cuDNN 版本:7.6.5

# 屏蔽tensorflow输出的log信息
# 注意:代码在import tensorflow之前
import os
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "2"import sys
print("python的版本信息:",sys.version)
#python的版本信息: 3.7.9 (default, Aug 31 2020, 17:10:11) [MSC v.1916 64 bit (AMD64)]import tensorflow as tf'''
验证GPU相对于CPU,在并行计算优势明显
'''
n=100000000 #1亿次  (2亿次 会发生内存分配OOM )
python的版本信息: 3.8.5 (default, Sep  3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)]
# 创建在CPU环境上运算的 2 个矩阵
with tf.device('/cpu:0'):cpu_a = tf.random.normal([1, n])cpu_b = tf.random.normal([n, 1])print(cpu_a.device, cpu_b.device)
/job:localhost/replica:0/task:0/device:CPU:0 /job:localhost/replica:0/task:0/device:CPU:0
cpu_b.device
'/job:localhost/replica:0/task:0/device:CPU:0'
cpu_a.device
'/job:localhost/replica:0/task:0/device:CPU:0'
# 创建使用 GPU环境运算的 2 个矩阵
with tf.device('/gpu:0'):gpu_a = tf.random.normal([1, n])gpu_b = tf.random.normal([n, 1])print(gpu_a.device, gpu_b.device)
/job:localhost/replica:0/task:0/device:GPU:0 /job:localhost/replica:0/task:0/device:GPU:0
import timeit
def cpu_run(): # CPU 运算函数with tf.device('/cpu:0'):c = tf.matmul(cpu_a, cpu_b)return c
def gpu_run():# GPU 运算函数with tf.device('/gpu:0'):c = tf.matmul(gpu_a, gpu_b)return c
# 第一次计算需要热身,避免将初始化时间结算在内
cpu_time = timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run, number=10)
print('首先计算10次(含热身环境)的平均时间,CPU计算消耗时间:%.3fms,GPU计算消耗时间:%.3fms!'%(cpu_time*1000, gpu_time*1000) )
首先计算10次(含热身环境)的平均时间,CPU计算消耗时间:732.556ms,GPU计算消耗时间:0.676ms!
#正式计算10次,取平均时间
cpu1_time = timeit.timeit(cpu_run, number=200)
gpu1_time = timeit.timeit(gpu_run, number=200)
print('正式计算200次的平均时间,CPU计算消耗时间:%.3fms,GPU计算消耗时间:%.3fms!'%(cpu1_time*1000, gpu1_time*1000))
正式计算200次的平均时间,CPU计算消耗时间:14245.693ms,GPU计算消耗时间:12.130ms!

CPU与CUDA(GPU)的计算能力对比之一: Tensorflow矩阵乘相关推荐

  1. CPU与CUDA(GPU)的计算能力对比之二: Keras Resnet 运算效率比较

    CPU与CUDA(GPU)的计算能力对比之二: Keras Resnet 运算效率比较 结论: CUDA(GPU : NVIDIA RTX2070 MQ 笔记本版本) 启动后,效率将近是 CPU 单独 ...

  2. linux用cpu模拟cuda,GPU模拟器,用于CUDA编程,无需硬件

    对于那些谁正在寻找答案在2016年- 免责声明 >我毕竟没有效仿GPU. >如果你满足其列表,可能可以使用gpuocelot 依赖性. 我试图得到一个模拟器的BunsenLabs(Linu ...

  3. gpu浮点计算能力floaps_聊聊 GPU 峰值计算能力

    1.前言 2020 年 5 月 14日,在全球疫情肆虐,无数仁人志士前赴后继攻关新冠疫苗之际,NVIDIA 创始人兼首席执行官黄仁勋在自家厨房直播带货,哦不对应该是 NVIDIA GTC 2020 主 ...

  4. 收藏 | 聊聊 GPU 的计算能力上限

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:来自 | 知乎   作者丨卜居 链接丨https://zhuanlan.zhihu.com/p/2313027 ...

  5. linux下cpu opencl加速,GPU挑战CPU!详解CUDA+OpenCL威力

    众所周知,GPU拥有数十倍于CPU的浮点运算能力,但如此强大的实力多数情况下只能用来玩游戏,岂不可惜?因此近年来业界都在致力于发掘GPU的潜能,让它能够在非3D.非图形领域大展拳脚. 1999年,首颗 ...

  6. win10 子系统 ubuntu GPU驱动,CUDA, CUDNN安装与 win10 GPU 机器学习性能对比, numa_node 问题

    这里写自定义目录标题 win10 子系统 ubuntu GPU 安装 与 win10 GPU 机器学习性能对比 win10 子系统 ubuntu GPU驱动,CUDA, CUDNN安装 win10 端 ...

  7. gpu浮点计算能力floaps_关于CPU的浮点运算能力计算

    学了IT那么久,只知道CPU主频不断的提升,核数也越来越多,但是如何理论上计算出不同代CPU性能的提升,还真没有认真思考过,我估计大多数人也不会关注,这次由于要进行高性能集群项目遇到,刚好认真的研究了 ...

  8. gpu浮点计算能力floaps_为何CPU浮点计算能力差,什么是浮点计算,GPU为何擅长浮点计算?...

    GPU比CPU去掉了大量非计算单元(去掉L3, 降低缓存容量,精简控制器,降低分支能力和预测执行能力),增加了通用寄存器.其实CPU的浮点能力并不差,通常来说CPU的整数能力只是CPU浮点能力的2-5 ...

  9. 查看CUDA,GPU对应计算能力

    这里我的GPU类型 计算能力参看官网https://developer.nvidia.com/cuda-gpus CUDA:CUDA(Compute Unified Device Architectu ...

最新文章

  1. 【代码笔记】iOS-二维码
  2. 华北电力大学计算机导论试题,华北电力大学 北京 继电保护历年复试试题.doc
  3. C++实现类似反射模式(模板)
  4. RabbitMQ声明队列参数作用详解
  5. perl中-和=作用
  6. 好程序员web前端分享web开发概况
  7. JAVA Swing GUI设计 WindowBuilder Pro Container使用大全1——JTabbePane(卡片)使用
  8. Hibernate的单向N-N关联(四)
  9. Lucene学习入门——核心类API
  10. 静态属性和静态方法 - C++快速入门21
  11. 有道词典笔3新增功能扫读和点读是怎么集成的?
  12. java mysql 流水号_java实现数据库序号(流水号)
  13. 微信公众号菜单html5,微信公众号自定义菜单全攻略
  14. R12应付模块详细结账流程
  15. 岌岌可危 中立之争决定云计算未来
  16. 阿里云ECS建站教程(超详细图文教程)
  17. 关于单边账的解释及解决
  18. 如何清除DNS缓存(Mac,Windows,Chrome)
  19. Ipmitool工具安装以及常见使用方法
  20. 算法题_位运算_9_出现一次的数字和出现k次的数字

热门文章

  1. SPA(单页面应用)设计【自我总结】
  2. 【报告分享】猫犬宠物行业线上消费趋势与营销洞察-阿里妈妈(附下载)
  3. 2023年预制菜首展|中国(江西)国际预制菜产业展览会
  4. 计算机区位码2083转为16进制是多少,区位码2083如何转化为十六进制?
  5. Power Bi 计数小技巧
  6. Android TTS
  7. 创建一个简单的flask项目步骤
  8. 顶尖成功人士的12个强大习惯
  9. TYD2019python机器学习实战笔记,初识 numpy 和 pandas
  10. 学生管理系统 前后端分离项目【简约版】