当前位置:网站首页>掌握高性能计算前,我们先了解一下它的历史
掌握高性能计算前,我们先了解一下它的历史
2022-06-10 18:37:00 【华为云开发者联盟】
摘要:在2005年之后,单核标量处理器的性能基本上达到顶峰,很难进一步大幅度(超过10%)提升性能。
本文分享自华为云社区《高性能计算(1)——读史知兴替》,作者: 我是一颗大西瓜 。
并行的崛起
在2005年之前,大多数处理器都是单核的,一些处理器已经开始 支持向量化(如X86处理器支持的MMX(多媒体扩展)和SSE(流式SIMD扩展)指令集),处理器生产商通过提升单核标量处理器的频率和指令级并行处理能力(即提升指令流水线性能)来提升处理器的计算性能。
在2005年之前,单核标量处理器的性能基本上是每18个月近似提升一倍,这称为摩尔定律,如下图所示。单核标量处理器性能提升能满足摩尔定律的时期称为提升软件性能的“免费午餐”时期,因为单核标量代码的性能可以满足摩尔定律描述的速度提升。

在2005年之后,单核标量处理器的性能基本上达到顶峰,很难进一步大幅度(超过10%)提升性能——为什么?
单核标量处理器以近似摩尔定律的方式提升性 能,其主要通过以下几种方式提升性能:
- 提升处理器的时钟频率:处理器的时钟频率表示处理器1秒内可以运行多少个基本操作。功耗限制了频率的继续提升:从物理定理来看,随着处理器工艺制程的推进,处理器的最大功耗(主要是漏电功耗)越来越大(处理器的功耗和处理器的频率的三次方近似成正比),THINK: 降温、超导计算机、量子计算机
- 提升指令级并行能力:单核标量处理器上具有许多不同的部件,每个部件执行不同的指令操作。要利用好处理器的指令级并行能力需要代码优化人员、编译器作者和处理器设计师共同努力。处理器设计通常会增加硬件流水线的级次,而现在这一方法也达到其局限。硬件设计师通过增加硬件寄存器的长度提升性能。例如,原来寄存器长度为32位,现在提升到128位,THINK: 增加寄存器数量?主流为啥是32位和64位?为什么没有128位甚至更多位的处理器呢?用不着?还是做不出来? - 知乎
因此,由于散热导致处理器的频率不能接着提升,硬件生产商转而采用将多个处理器组成到一个芯片上,这称为多核;为了提供更高性能的处理器,处理器硬件生产商通过增加寄存器的宽度和指令的宽度来同时处理多个数据,这称为向量化。
多核和向量化的难点:
- 依据Amdahl定律,程序中的串行代码比例限制了并行化代码能够取得的最好效果。
- 多核向量处理器(尤其是X86)为了减少获取数据的延迟, 使用了大量的缓存来保存多次重复访问的数据。但是缓存并不贡献硬件的原生计算能力。
- 有些代码不能使用多核并行化或向量化。
- 要发挥向量化和多核的计算能力,可能需要多份代码,这增加了代码维护代价。
- 在一些应用严格的应用场景下,限制了其不能允许向量化和多线程导致的计算结果出现偏差。
异构并行的崛起
异构并行时代的崛起是从2007年NVIDIA推出CUDA(Computing Unified Device Architecture,计算统一设备架构)开始的。异构并行包含两个子概念:
- 异构(Homogenerous)。异构是指异构并行计算需要同时处理多个不同架构的计算平台 的问题,如目前主流的异构并行计算平台X86+GPU、X86+FPGA,以及目前正在研发中的ARM/Power+GPU
- 并行(Parallel)。并行是指异构并行计算主要采用并行的编程方式,无论是X86处 理器,还是ARM和GPU处理器以及DSP,这里所有的处理器都是多核向量处理器
当前CPU的发展已经落后于摩尔定律,但GPU仍然在快速发展中。CPU和GPU都是具有运算能力的芯片。 其中,CPU不但擅长于指令运算,而且擅长于各类数值运算;而GPU是专门为处理图形任务而产生的芯片,仅擅长于图形函数类
数值计算。从硬件设计上来讲,CPU由专为顺序串行处理而优化的几个核心组成。另一方面, GPU则由数以千计的更小、更高效的核心组成,这些核心专为同时处理多任务而设计。

总之,GPU是面向适合于矩阵类型图形函数的数值计算而设计的。它利用大量重复设计的运算单元建立大量数值运算的线程,擅长无逻辑关系的大量平行数据的高度并行数值计算。 而CPU是根据兼顾 “指令并行执行” 和 “数据并行运算” 的思路进行设计,擅长处理拥有复杂指令调度、循环、分支、逻辑判断以及执行等的程序任务。

华为伙伴暨开发者大会2022火热来袭,重磅内容不容错过!
【精彩活动】
勇往直前·做全能开发者→12场技术直播前瞻,8大技术宝典高能输出,还有代码密室、知识竞赛等多轮神秘任务等你来挑战。即刻闯关,开启终极大奖!点击踏上全能开发者晋级之路吧!
【技术专题】
未来已来,2022技术探秘→华为各领域的前沿技术、重磅开源项目、创新的应用实践,站在智能世界的入口,探索未来如何照进现实,干货满满点击了解
边栏推荐
- Adobe Premiere foundation - time remapping (10)
- JS Standard
- Analysis of Muduo source code -- an analysis of the rigor, efficiency and flexibility of Muduo library code design with three slices
- 【Vulnhub靶场】JANGOW: 1.0.1
- Low carbon data center construction ideas and future trends
- MATLAB 根据任意角度、取样点数(分辨率)、位置、大小画椭圆代码
- Introduction to ad18 device library import
- 【C语言】一不小心写出bug?凡人教你如何写出好代码【详解vs中调试技巧】
- 基于ssm在线订餐系统设计与实现.rar(项目源码)
- 2022.05.28(LC_516_最长回文子序列)
猜你喜欢

【 random talk 】 congratulations on getting the title of CSDN expert. Your efforts will eventually pay off

Morris traversal of binary tree

直播预告 | 解构OLAP!新型多维分析架构范式全公开!Apache Doris 将带来五个重磅议题!

MySQL (17 trigger)

mysql(17-触发器)

ESP8266 系统环境搭建

数据库防火墙闪亮登场(好文共赏)

Libcurl 7.61.0 vs2013 compilation tutorial

openSSL1.1.1编译错误 Can‘t locate Win32/Console.pm in @INC

【Vulnhub靶场】JANGOW: 1.0.1
随机推荐
VS从txt文件读取中文汉字产生乱码的解决办法(超简单)
Beam pattern analysis based on spectral weighting
端午“沉浸式云旅游”怎么玩?即构助力“直播+”新场景落地
Explain the interview questions by holding chestnuts (interview, review and study)
Libcurl 7.61.0 vs2013 compilation tutorial
Opencv does not rely on any third-party database for face detection
My first work: tensorflow2 x
第三章 数据类型(二)
JS Standard
【数据库语言SPL】写着简单跑得又快的数据库语言 SPL
数据治理经典6大痛点?这本书教你解决
《Single Image Haze Removal Using Dark Channel Prior》去雾代码实现分析
C (pointer-02)
数据库防火墙闪亮登场(好文共赏)
Pits encountered during the use of ETL (ETL Chinese garbled)
Adobe Premiere Basics - introduction, configuration, shortcut keys, creating projects, creating sequences (I)
[vulnhub range] janchow: 1.0.1
【C语言进阶】数据的存储【下篇】【万字总结】
Prospect of database firewall technology [final chapter]
Low carbon data center construction ideas and future trends