当前位置:网站首页>掌握高性能计算前,我们先了解一下它的历史
掌握高性能计算前,我们先了解一下它的历史
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技术探秘→华为各领域的前沿技术、重磅开源项目、创新的应用实践,站在智能世界的入口,探索未来如何照进现实,干货满满点击了解
边栏推荐
- Opencv does not rely on any third-party database for face detection
- SPSS入门笔记记录
- 2022.05.29(LC_6078_重排字符形成目标字符串)
- Adobe Premiere foundation - material nesting (animation of Tiktok ending avatar) (IX)
- Monotonic stack structure
- 中国 璞富腾酒店及度假村旗下酒店推出全新水疗产品共庆6月11日全球健康日
- 最长上升子序列(LIS)洛谷
- Openssl1.1.1 vs2013 compilation tutorial
- [Code] neural symbol generation machine
- C (pointer-02)
猜你喜欢

2022.05.29(LC_6078_重排字符形成目标字符串)

Ranked first in China's SDN (software) market share for six consecutive years

C (pointer-02)

Basic model and properties of SAR echo signal

APICloud可视化开发丨一键生成专业级源码

Sliding window maximum value problem

【杂谈】恭喜自己获得CSDN专家称号,努力终会换来结果

Ruixin micro rk1126 platform platform porting libevent cross compiling libevent

Introduction to ad18 device library import

openSSL1.1.1编译错误 Can‘t locate Win32/Console.pm in @INC
随机推荐
【 Web 】 page d'accueil personnelle 】 Programme d'études 】 albums de photos 】 babillard d'information 】
基于SSM流量计量云系统的设计与实现.rar(论文+项目源码)
中国 璞富腾酒店及度假村旗下酒店推出全新水疗产品共庆6月11日全球健康日
Prospect of database firewall technology [final chapter]
Basic model and properties of SAR echo signal
第二章 数据类型(一)
AEC: analysis of echo generation causes and echo cancellation principle
Basic improvement - tree DP supplement
单纯形法代码求解(含超详细代码注释和整个流程图)
Live broadcast preview | a new era of social interaction, exploring new social experiences in the universe
Adobe Premiere foundation - opacity (matte) (11)
Request header field XXXX is not allowed by access control allow headers in preflight response
Design and implementation of online ordering system based on SSM Rar (project source code)
WordPress 6.0 "Arturo Arturo" release
【01】每一位优质作者都值得被看见,来看看本周优质内容吧!
基于ssm在线订餐系统设计与实现.rar(项目源码)
nodejs-判断系统类型-获取主机名称-执行控制台命令-中文乱码
Leecode27977 double finger needling
【数据库语言SPL】写着简单跑得又快的数据库语言 SPL
Sliding window maximum value problem