|
|
|
|
移动端

1.12 性能界限

《ARM嵌入式系统编程与优化》第1章Linux/ARM嵌入式平台,本章介绍如何使用GCC编译器、汇编器和连接器来编写和执行独立的汇编语言程序,以及如何将一个C语言代码和汇编语言代码合起来,以验证汇编代码子程序的正确性。本节为大家介绍性能界限。

作者:梁元宇 译来源:机械工业出版社|2017-09-26 19:24

【新品产上线啦】51CTO播客,随时随地,碎片化学习

1.12 性能界限

包括执行时间的实质部分的程序循环或循环嵌套被称为内核。相对简单内核的运行时行为可以通过算法强度或一些原始中央处理器操作执行每单元数据来表示。一旦内核的算术强度是已知的,它可以作为处理器的峰值存储器带宽的函数来计算性能上限。

处理器的峰值浮点吞吐量可以通过时钟频率和每个周期执行的浮点操作数的乘积估计出来。例如,如果一个处理器在1GHz上每个周期内可以执行10个浮点操作,那么它的峰值吞吐量为100亿每秒浮点运算或者10Gflops。注意:“flops”一词可能会被混淆,因为它既可以作为每秒所执行的浮点运算次数的缩写,也可以作为浮点运算的简写。通常可以从它的上下文中确定预期意义。

有高强度算术的内核被称为是受计算限制的,这意味着性能受到可以被分派到处理器的内部功能单元的操作数量限制。与存储器界限对比,这就意味着性能受到存储器带宽限制。

内核从存储受限到计算受限的确切算术强度值取决于处理器,但在实践中很少有内核是受计算限制的。即使内核似乎有很高的算法强度,例如执行每个为O (n2)的输入和输出值的矩阵乘法flops为O (n3),它还是经常因加载存储延迟或数据依赖延迟受到性能边界影响。这有一个例子,就是特定处理器性能的SGEMM只能达到理论峰值性能值的50%~75%。

算术强度在每字节的浮点运算(flops/byte)下测量。因此,内核的性能上界的计算公式为P = A×B,在flop/byte中A ==运算强度,在byte/s中B ==存储带宽,在flops/s (flops)中P ==性能。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

开源osCommerce 轻松架设专业电子商务平台

osCommerce是一款免费的、开放源代码的专业电子商务解决方案。本书以通俗易懂的语言向读者展示了该软件强大的功能和简易的操作方法,主要内...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊