博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内存、时间复杂度、CPU/GPU以及运行时间
阅读量:4585 次
发布时间:2019-06-09

本文共 863 字,大约阅读时间需要 2 分钟。

  • 衡量 CPU 的计算能力:
    • 比如一个 Intel 的 i5-2520M @2.5 Ghz 的处理器,
      则其计算能力 2.5 * 4(4核) = 10 GFLOPS
  • FLOP/s,Floating-point operations per second,每秒峰值速度,
    • 一个 MFLOPS(megaFLOPS)等於每秒一佰万(=10^6)次的浮点运算,
    • 一个 GFLOPS(gigaFLOPS)等於每秒拾亿(=10^9)次的浮点运算,
    • 一个 TFLOPS(teraFLOPS)等於每秒万亿(=10^12)次的浮点运算,
    • 一个 PFLOPS(petaFLOPS)等於每秒千万亿(=10^15)次的浮点运算,
    • 一个 EFLOPS(exaFLOPS)等於每秒百亿亿(=10^18)次的浮点运算。

0. 初步

局部变量即内存,也即空间复杂度;当某算法对空间复杂度也要求严格时,如果仍要存储某些局部变量,比如棋盘对应的二维数组,当棋盘的大小显著时,比如 210×210 此时就要考虑内存的问题,也即是否有必要维护这样的一份内存数据;

1. 量化分析

假设我们将矩阵和一个向量相乘:

这里写图片描述

如果 M = 1024,N = 512,

  • 那么我们需要读取和存储的字节数是:

    4 bytes * (1024*512 + 512 + 1024) = 2.1e+06

  • 计算次数是:

    1024*(512+512) = 1.0e+06

  • 如果我们有块6 TFLOP/s 的 GPU,带宽 300GB/s 的内存,那么运行总时间是:

    max{2.1e6 bytes /(300e9 bytes/s),1e6 FLOPs/(6e12 FLOP/s)}=max{7μs,0.16μs}

    这意味着处理过程的瓶颈在于从内存中复制向内存中写入消耗的7μs,而且使用更快的 GPU 也不会提升速度了。你可能会猜到,在进行矩阵-矩阵操作时,当矩阵/向量变大时,这一情况会有所好转。

转载于:https://www.cnblogs.com/mtcnn/p/9423878.html

你可能感兴趣的文章
黑马程序员-java基础学习IO流4
查看>>
SolrCloud使用问题记录
查看>>
提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
查看>>
mybatis入门基础(二)----原始dao的开发和mapper代理开发
查看>>
linux网络流程分析(一)---网卡驱动
查看>>
2016年毕业设计指导与总结
查看>>
TypeError: Cannot read property 'tap' of undefined
查看>>
scikit-learn文本特征提取之TF-IDF
查看>>
WebApiTestClient自定义返回值说明
查看>>
Swift中文教程(二)--简单值
查看>>
H3C 维护命令
查看>>
根据状态变化情况,求最大值和最小值
查看>>
解决Windows10下小娜无法搜索本地应用的问题
查看>>
python2下向文件写入unicode编码的内容,codecs包
查看>>
linux 脚本统计代码行数
查看>>
Android学习笔记之短信验证码的获取和读取
查看>>
ToolBar修改返回按钮图标
查看>>
Swift - 在界面上生成81个随机红,灰色圆点(SpriteKit游戏开发)
查看>>
android UI进阶之实现listview的分页加载
查看>>
共享内存
查看>>