内存、时间复杂度、CPU/GPU以及运行时间
- 衡量 CPU 的计算能力:
- 比如一个 Intel 的 i5-2520M @2.5 Ghz 的处理器,
则其计算能力 2.5 * 4(4核) = 10 GFLOPS
- 比如一个 Intel 的 i5-2520M @2.5 Ghz 的处理器,
- 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 也不会提升速度了。你可能会猜到,在进行矩阵-矩阵操作时,当矩阵/向量变大时,这一情况会有所好转。
内存、时间复杂度、CPU/GPU以及运行时间的更多相关文章
- Cpu Gpu 内存 显存 数据流
[精]从CPU架构和技术的演变看GPU未来发展 http://www.pcpop.com/doc/0/521/521832_all.shtml 显存与纹理内存详解 http://blog.csdn.n ...
- [转帖]双剑合璧:CPU+GPU异构计算完全解析
引用自:http://tech.sina.com.cn/mobile/n/2011-06-20/18371792199.shtml 这篇文章写的深入浅出,把异构计算的思想和行业趋势描述的非常清楚,难得 ...
- 在Linux中通过Top运行进程查找最高内存和CPU使用率
按内存使用情况查找前15个进程,在批处理模式下为"top" 使用top命令查看有关当前状态,系统使用情况的更详细信息:正常运行时间,负载平均值和进程总数. 分类:Linux命令操作 ...
- CPU/GPU/TPU/NPU...XPU都是什么意思?
CPU/GPU/TPU/NPU...XPU都是什么意思? 现在这年代,技术日新月异,物联网.人工智能.深度学习等概念遍地开花,各类芯片名词GPU, TPU, NPU,DPU层出不穷......都是什么 ...
- Ambari server:无法显示内存,CPU等使用率
Ambari server安装完毕后,都能正确显示各种信息.运行了几天后,发现无法显示内存,CPU等信息. 查找日志发现有错误,日志路径:/var/log/ambari-server/ambari-s ...
- C#实现对远程服务器的内存和CPU监控
C#实现对远程服务器的内存和CPU监控小记 1. 主要使用到的组件有System.Management.dll 2. 主要类为 :ManagementScope 连接远程服务器示例代码: priv ...
- YARN的内存和CPU配置
时间 2015-06-05 00:00:00 JavaChen's Blog 原文 http://blog.javachen.com/2015/06/05/yarn-memory-and-cpu- ...
- Raspberry Pi B+ 定时向物联网yeelink上传CPU GPU温度
Raspberry Pi B+ 定时向物联网yeelink上传CPU GPU温度 硬件平台: Raspberry Pi B+ 软件平台: Raspberry 系统与前期安装请参见:树莓派(Ros ...
- Spark Tungsten揭秘 Day4 内存和CPU优化使用
Spark Tungsten揭秘 Day4 内存和CPU优化使用 今天聚焦于内存和CPU的优化使用,这是Spark2.0提供的关于执行时的非常大的优化部分. 对过去的代码研究,我们会发现,抽象的提高, ...
随机推荐
- Redisclient连接方式Hiredis简单封装使用,连接池、屏蔽连接细节
工作须要对Hiredis进行了简单封装,实现功能: 1.API进行统一,对外仅仅提供一个接口. 2.屏蔽上层应用对连接的细节处理: 3.底层採用队列的方式保持连接池,保存连接会话. 4.重连时採用时间 ...
- UIButton文字居左显示
题外话:时间依然过的非常快.不知不觉2015年就过去一半了.感觉自己好像没有大的改变.仅仅能感叹时间飞逝,却不能有所收获. 我从来都不是一个安于现状的人,改变自己的想法从未停止过.我想大多数人都跟我有 ...
- QT就是别人好心帮你做一些枯燥,并且很重复的代码编写工作,让你更好的把精力投入到你界面的逻辑和功能的实现的功能库(否则写了上万行代码了,才写出个BUG一大堆的毛坯)
好了,现在开始记录我学习QT的学习历程 . 本人也不是计算机专业出来的,自学了一点,但还是不好找工作,于是参加了培训,虽然感觉没多学到什么 编程的学习生涯就是不断的看别人的源码,然后自己参考着写写自己 ...
- POJ 3049 DFS
思路:暴搜 //By SiriusRen #include <cstdio> #include <iostream> #include <algorithm> us ...
- ssh-agent && 及 ssh-add介绍
ssh-agent命令是一种控制用来保存公钥身份验证所使用的私钥的程序.ssh-agent在X会话或登录会话之初启动,所有其他窗口或程序则以客户端程序的身份启动并加入到ssh-agent程序中.通过使 ...
- readonly&&declare&&unset &&export&&env环境变量
readonly命令用于定义只读shell变量和shell函数.readonly命令的选项-p可以输出显示系统中所有定义的只读变量. 选项 -f:定义只读函数: -a:定义只读数组变量: -p:显示系 ...
- last---显示用户最近登录信息
last命令用于显示用户最近登录信息.单独执行last命令,它会读取/var/log/wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来. 语法 last(选项)(参数) 选项 - ...
- KnockOut下的离开检测
<input type="text" class="form-control" data-bind="event:{ blur:$root.ch ...
- Android 阅读器架构图,网上收集,留做存货
这个结构图是网上收集的图片.基结构明晰简洁.易于后期维护.本文会继续收集很多其他其他优秀的结构图,望有图的朋友推荐~
- C语言之函数指针、回调函数的使用
一.背景 首先看下如下代码,这个定义是放在头文件的,在程序中tCdrvCallbackFkt也定义了另一个变量,而且括号后面还跟定义了几个变量,不理解这个定义. typedef void (PUBLI ...