写点什么

掌握高性能计算前,我们先了解一下它的历史

  • 2022 年 6 月 10 日
  • 本文字数:1764 字

    阅读完需:约 6 分钟

本文分享自华为云社区《高性能计算(1)——读史知兴替》,作者: 我是一颗大西瓜 。

并行的崛起


在 2005 年之前,大多数处理器都是单核的,一些处理器已经开始 支持向量化(如 X86 处理器支持的 MMX(多媒体扩展)和 SSE(流式 SIMD 扩展)指令集),处理器生产商通过提升单核标量处理器的频率指令级并行处理能力(即提升指令流水线性能)来提升处理器的计算性能。


在 2005 年之前,单核标量处理器的性能基本上是每 18 个月近似提升一倍,这称为摩尔定律,如下图所示。单核标量处理器性能提升能满足摩尔定律的时期称为提升软件性能的“免费午餐”时期,因为单核标量代码的性能可以满足摩尔定律描述的速度提升。



在 2005 年之后,单核标量处理器的性能基本上达到顶峰,很难进一步大幅度(超过 10%)提升性能——为什么?


单核标量处理器以近似摩尔定律的方式提升性 能,其主要通过以下几种方式提升性能:


  1. 提升处理器的时钟频率:处理器的时钟频率表示处理器 1 秒内可以运行多少个基本操作。功耗限制了频率的继续提升:从物理定理来看,随着处理器工艺制程的推进,处理器的最大功耗(主要是漏电功耗)越来越大(处理器的功耗和处理器的频率的三次方近似成正比),THINK: 降温、超导计算机、量子计算机

  2. 提升指令级并行能力:单核标量处理器上具有许多不同的部件,每个部件执行不同的指令操作。要利用好处理器的指令级并行能力需要代码优化人员、编译器作者和处理器设计师共同努力。处理器设计通常会增加硬件流水线的级次,而现在这一方法也达到其局限。硬件设计师通过增加硬件寄存器的长度提升性能。例如,原来寄存器长度为 32 位,现在提升到 128 位,THINK: 增加寄存器数量?主流为啥是 32 位和 64 位?https://www.zhihu.com/question/21641577


因此,由于散热导致处理器的频率不能接着提升,硬件生产商转而采用将多个处理器组成到一个芯片上,这称为多核;为了提供更高性能的处理器,处理器硬件生产商通过增加寄存器的宽度和指令的宽度来同时处理多个数据,这称为向量化


多核和向量化的难点:


  1. 依据 Amdahl 定律,程序中的串行代码比例限制了并行化代码能够取得的最好效果。

  2. 多核向量处理器(尤其是 X86)为了减少获取数据的延迟, 使用了大量的缓存来保存多次重复访问的数据。但是缓存并不贡献硬件的原生计算能力。

  3. 有些代码不能使用多核并行化或向量化。

  4. 要发挥向量化和多核的计算能力,可能需要多份代码,这增加了代码维护代价。

  5. 在一些应用严格的应用场景下,限制了其不能允许向量化和多线程导致的计算结果出现偏差。

异构并行的崛起


异构并行时代的崛起是从 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 技术探秘→华为各领域的前沿技术、重磅开源项目、创新的应用实践,站在智能世界的入口,探索未来如何照进现实,干货满满点击了解


点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 4
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
掌握高性能计算前,我们先了解一下它的历史_华为云_华为云开发者联盟_InfoQ写作社区