后藤弘茂的海外新闻周刊:中国最快计算机神威太湖之光的CPU设计类似PS3 [日本媒体]

世界最快的计算机——中国“神威太湖之光”的CPU “SW 26010”的概要~与PS3的“Cell B.E.”相似的设计。半导体芯片国际联盟COOL Chips 20于4月19日起在横滨信息文化中心召开。世界上最先进的芯片技术都会在COOL Chips上发布......

世界最速スパコン中国「神威太湖之光」のCPU「SW26010」の概要~PS3の「Cell B.E.」と似た设计

世界最快的计算机——中国“神威太湖之光”的CPU “SW 26010”的概要~与PS3的“Cell B.E.”相似的设计



半导体チップの国际カンファレンス「COOL Chips 20」が、4月19日より横浜情报文化センターで开催されている。COOL Chipsでは、世界の最先端のチップ技术が発表されるが、今回、世界最速のスーパーコンピュータ「Sunway TaihuLight (神威・太湖之光)」のプロセッサ「Shenwei 26010 (SW26010)」のコア概要が初めて明かされた。

半导体芯片国际联盟COOL Chips 20于4月19日起在横滨信息文化中心召开。世界上最先进的芯片技术都会在COOL Chips上发布,不过这次发布的是世界上最快的超级计算机Sunway TaihuLight(神威.太湖之光)的处理器Shenwei 26010(SW 26010 )的核心概要。

————————————————————————————————————————————

中国开発の独自アーキテクチャCPUを积んだSunway TaihuLight

中国自主开发的CPU组成了Sunway TaihuLight(神威.太湖之光)。

————————————————————————————————————————————

Sunway TaihuLightは、中国のNational Supercomputing Center in Wuxiのスパコンだ。2016年6月のスパコンランキングTOP500でトップとなり话题をさらった。

Sunway TaihuLight(神威.太湖之光)是一台位于中国的国家超级计算无锡中心的超级计算机。因其在2016年6月的超级计算机排名TOP500中夺得首位而成为热门话题。

————————————————————————————————————————————

ピーク性能は125 PFLOPS、Linpackで105 PFLOPSと、初めての100 PFLOPSクラスのスパコンだ。Sunway TaihuLightの重要なポイントは、独自开発のプロセッサを採用した点にある。

其峰值性能为125 PFLOPS,在Linpack测试中达到105 PFLOPS,是世界上第一台超过100 PFLOPS的超级计算机。Sunway TaihuLight(神威.太湖之光)最重要的一点,是采用了中国自主研发的处理器。

————————————————————————————————————————————

Sunwayのスパコンシリーズでは、独自のプロセッサが使われている。プロセッサを开発したのは、中国のShanghai High Performance IC Design Center。中国アーキテクチャの中国産プロセッサによるスパコンだ。

Sunway(神威)系列的超级计算机采用的都是自主研发的处理器,由中国的上海高性能集成电路设计中心设计,是中国一种专门用于超级计算机的处理器架构。

————————————————————————————————————————————

TaihuLightの前の世代の「Sunway BlueLight」には、16コアの「Shenwei 1600」が搭载された。今回のTaihuLightには、260コアの「Shenwei 26010 (SW26010)」が搭载されている。独自开発というだけでなく、CPUマイクロアーキテクチャが非常に特殊である点も注目されている。

TaihuLight(太湖之光)的前一代Sunway BlueLight(神威.蓝光)搭载的是16核心的Shenwei 1600处理器。这次的TaihuLight(太湖之光)搭载的是260核心的Shenwei 26010(SW 26010 )处理器。备受关注的不仅仅是中国自主研发的CPU,还有其非常特殊的微架构。

————————————————————————————————————————————

SW26010プロセッサの特徴は、シンプルなスモールコアのメニーコア构成である点と、複数种类のコアによるヘテロジニアスマルチコア构成である点だ。

SW 26010处理器的特征就是,由简单的小型核心构成多数核心这点,和不同种类的核心构成异构多核这点。

————————————————————————————————————————————

PS3の「Cell B.E.」と似ているSW26010

与PS3上Cell B.E.相似的SW 26010 

————————————————————————————————————————————

SW26010プロセッサは、ソニー製家庭用ゲーム机「PLAYSTATION 3(PS3)」のCPUである、「Cell Broadband Engine(Cell B.E.)」との类似性がよく言われる。

一般认为SW 26010处理器与索尼制造的家用游戏机「PLAYSTATION 3(PS3 )」的CPU  Cell Broadband Engine(Cell B.E.)非常的类似。

————————————————————————————————————————————

今回、SW26010のよりディテールが明らかになったことで、Cell B.E.との类似性と相违点の両方が、よりクリアになった。

这次SW 26010的发布让我们可以跟清楚的了解到其与Cell B.E.的相同点和不同点。

————————————————————————————————————————————

SW26010は、マネージメントを行なう汎用的なメインプロセッサと、ベクターユニットを备えた多数の演算プロセッサのアレイでクラスタを构成する。演算プロセッサはデータキャッシュを持たず、ソフトウェア制御のスクラッチパッドメモリを备える。PS3ゲームプログラマにとっては、驯染み深いアーキテクチャだ。

SW 26010是一种通用处理器,向量单元和大多数运算处理器一样采用阵列集群构成。运算处理器没有数据缓存只有可软件管理的暂存缓存。对于PS3的游戏程序员来说,这是一个很熟悉的架构。

————————————————————————————————————————————

かつてPS3をベースにしたスパコンがあったので、スパコン用のSW26010が似たような构成を取るのも不思议ではない。ゲームプログラミングとスパコンハックは近いところにあると言われることがあるが、SW26010はそれを象徴するようなアーキテクチャとなっている。

曾经有以PS3为基础的超级计算机,所以有用相似的SW 26010组成的超级计算机也并不是不可思议。近年来普遍认为游戏和超级计算机编程对程序员的要求类似,SW 26010更有理由采用这种架构。

————————————————————————————————————————————

ただし、时代とプロセス技术の违いから、Cell B.E.の9コアに対して、SW26010は260コアとなっている。また、プログラミングでは「OpenACC」をサポートし、これも时代のおかげだが、よりフレンドリーなモデルとなっている。Cell B.E.が进化していれば、SW26010に近い构成になっていたかも知れない。

但是,时代和工艺技术的差别,导致Cell B.E.是9核心,对比SW 26010是260核心。另外,由于时代的进步,有了模型更友好的OpenACC编程这种支持。如果Cell B.E.也进化的话,也许就和SW 26010的结构差不多了吧。

————————————————————————————————————————————

3种类のプロセッサを搭载するSW26010

3种处理器的SW 26010

————————————————————————————————————————————

细かく见ると、SW26010は3种类のプロセッシングエレメント(Processing Element: PE)、言い换えればCPUコアを持っている。マネージメントコア「MPE (Management Processing Element)」、演算コア「CPE (Computing Processing Element)」、メモリアクセスコア「IMPE (Intelligent Memory Processing Element)」だ。

仔细一看,SW 26010有3种处理器部件(Processing Element : PE ),换句话说CPU内核拥有管理核心MPE(Management Processing Element )、运算核心CPE(Computing Processing Element )、智能存储处理核心IMPE(Intelligent Memory Processing Element )。

————————————————————————————————————————————

260コアとカウントしているのは、このうちMPEとCPEの数だ。

260个运算核心指的就是其中MPE和CPE的数量吧。

————————————————————————————————————————————

SW26010全体は、4つのコアグループで构成される。演算プロセッサであるCPEは、64プロセッサずつ「CPEクラスタ(CPE Cluster)」に构成されている。CPEクラスタが4个で、SW26010全体で256コアのCPEを搭载する。

SW 26010整体由四个核心集群构成。每个CPE集群(CPE Cluster )由64个运算处理器CPE构成,合计4个CPE集群,SW 26010整体拥有256个CPE。

————————————————————————————————————————————

各CPEクラスタは、1个のMPEによってマネージされる。1个のMPEに対して、64个のCPEという比率となっている。言い换えれば、1个のMPEから、64个のCPEにタスクがオフロードされる。

每个CPE集群中都嵌入一个MPE。1个MPE对64个CPE的比率。换句话说,一个MPE承载64个CPE。

————————————————————————————————————————————

SW26010のCPEクラスタは8x8のメッシュとなっている。クラスタは、クラスタコントローラ経由でオンチップネットワークに接続されている。クラスタコントローラには、64コアで共有するL2キャッシュも内蔵されている。

SW 26010的CPE集群以8x8的网状布置,集群内通过网络连接到的集群控制器上。在集群控制器上,内置一个64个核心共享的L2缓存。

————————————————————————————————————————————

通常のCPUアーキテクチャのMPE

通用CPU架构的MPE

————————————————————————————————————————————

MPE (Management Processing Element)は、Cell B.E.でいえば「PPU (Power Processor Unit)」にあたるマネージメント用のCPUコアだ。

MPE(Management Processing Element 管理核心),相当于Cell B.E.中用于管理的CPU核心PPU(Power Processor Unit)。

————————————————————————————————————————————

一般的なCPUコアの构造をしており、3命令イシューのアウトオブオーダ実行スーパースカラコア。命令とデータの両方を、L1とL2の阶层でキャッシュする。OSやランタイムなど、コントロール系やコミュニケーション系のプログラムを走らせることが主目的となっている。

采用一般的CPU内核架构,3发射超标量核心。缓存分为指令和数据的L1和L2。在操作系统中运行以控制系统和通讯系统为主要目的的程序。

————————————————————————————————————————————

MPEは、64-bit RISC系の独自命令セットを採用。ユーザーモードとシステムモードの両方をサポート。Cool Chipsでの発表によると、実行パイプは3本で、1ユニットが、メモリ命令や分岐命令などのハンドリング、残りの2ユニットが整数と浮动小数点の演算パイプとなっている。

MPE是一种采用自主指令集的64位RISC,支持用户模式和系统模式,根据Cool Chips上发布的信息,MPE拥有3条执行管线,其中1个是内存和分支等指令执行单元的管线,另外2个是整数和浮点运算单元的管线。

————————————————————————————————————————————

MPEは、256-bitのSIMD (Single Instruction, Multiple Data)ユニットを2ユニット备えるので、2パイプに256-bit SIMDが1ユニットづつ割り当てられていると见られる。64-bit倍精度浮动小数点演算で、16オペレーション/サイクルとなる。

MPE拥有2个256 bit的SIMD(Single Instruction, Multiple Data)(译者注:单指令多数据,一种数据级并行技术)单元,2个256 bit SIMD共享1个调度单元。当执行64bit双精度浮点运算时,具有每周期16个操作的性能。

————————————————————————————————————————————

命令実行は、命令単位でのアウトオブオーダ。キャッシュはL1命令キャッシュが32KB、L1データキャッシュが32KB、L2キャッシュが256KB。

指令执行时由解码单元解码。缓存为32 KB L1指令缓存,32 KB L1数据缓存,256 KB L2缓存。

————————————————————————————————————————————

Cell B.E.のSPUと共通する部分があるCPE

与Cell B.E.上SPU类似的CPE

————————————————————————————————————————————

CPE(Computing Processing Element)は、Cell B.E.でいえば「SPU(Synergistic Processor Unit)」にあたる、演算用のCPUコアだ。MPEと比べると、ずっとシンプルなスモールコアだ。

CPE(Computing Processing Element 运算核心)类似Cell B.E.上的SPU(Synergistic Processor Unit)用于运算的CPU内核,与MPE相比是一种简单的小型核心。

————————————————————————————————————————————

2命令イシューで、L1命令キャッシュは备えるが、L1データキャッシュは持たない。256-bitのSIMD(Single Instruction, Multiple Data)ユニットを备えて、并列化された演算タスクを実行することに最适化されている。

2发射,具有L1指令缓存,没有L1数据缓存,具有256 bit的SIMD(Single Instruction, Multiple Data)单元,为并行运算任务优化。

————————————————————————————————————————————

CPEの命令セットも、64-bit RISC独自命令。ユーザーモードのみサポートする。アウトオブオーダ実行だが、命令単位で自由にアウトオブオーダができるわけではない。命令ストリームをコードブロックに构成し、コードブロックベースでアウトオブオーダ実行が可能な场合に実行する。

​CPE的指令集为64位RISC的自主指令,只支持用户模式。指令解码时,不能由解码单元自由解码。需要将指令流构成代码模块,在需要执行的时候执行代码模块(译者注:根据描述感觉像是VLIW,VLIW(Very Long Instruction Word)超长指令字,一种指令级并行技术)。

————————————————————————————————————————————

16KBのL1命令キャッシュを持つが、L1データキャッシュがなく、64KBのスクラッチパッドメモリ(Scratch Pad Memory: SPM)を备える。このメモリは、LDM(ローカルデータメモリ: Local Data Memory)と呼ばれ、ソフトウェアマネージドで、プログラマに対して露出している。このLDMのデータロカリティを有効に使うことが、SW26010のパフォーマンス最适化のカギとなりそうだ。

具有16 KB的L1指令缓存,但是它没有L1数据缓存,而是64 KB的暂存缓存(Scratch Pad Memory : SPM)(译者注:SPM是集成到芯片上的非cache用途的SRAM存储器的统称)。这个缓存被称为LDM(本地数据存储 : Local Data Memory),由软件管理。如何有效使用LDM中的数据,是SW 26010性能优化的关键。

————————————————————————————————————————————

CPEの重要な特徴として、オンチップレジスタコミュニケーションがある。CPE间でレジスタ内容のダイレクトなフォワードが可能となっている。

CPE的重要特点就是,可以在寄存器之间交换数据,CPE之间寄存器里的内容可以直接提交。(译者注:一般核心之间要通过缓存甚至系统内存才能交换数据)

————————————————————————————————————————————

メモリ阶层的には、CPEクラスタで共有するL2キャッシュも备えるが、これは64 CPEコアの共有だ。CPEのレジスタコミュニケーション机能では、レジスタから直接オンチップネットワーク経由で、ほかのCPEにレジスタ内容を送ることができる。メモリ阶层を経由しない。レジスタコミュニケーション命令が设定されており、ポイントツーポイントまたはマルチキャストの両方がサポートされている。ネットワークプロセッサなどに见られるようなアーキテクチャだ。

关于缓存的层级,CPE集群也拥有共享的L2缓存,由64个CPE核心共享。CPE的寄存器传输功能,可以让寄存器中的内容直接从芯片中经由网络传输到其他CPE上的寄存器中,而不需要经过各级缓存。寄存器传输命令,支持点到点或单点到多点两种,最终构成网络处理器。

————————————————————————————————————————————

CPEの実行パイプは2本で、1本はメモリアクセスや分岐などコントロールを、もう1本が演算となっている。演算パイプは、MPEと同様に256-bit SIMDユニットだ。

CPE具有2条执行管线,1条用于内存存取控制和分支等,另1条用于运算。运算管线和MPE一样是256 bit SIMD单元。

————————————————————————————————————————————

ちなみに、ゲーム向けのCell B.E.は32-bit単精度浮动小数点演算に最适化されていたので、FP32x4の128-bit SIMDだった。それに対して、SW26010はスパコン向けなので、64-bit倍精度浮动小数点演算に最适化されており、FP64x4の256-bit SIMDとなっている。64-bit倍精度浮动小数点演算では、8オペレーション/サイクルとなる。

顺便说一下,游戏向的Cell B.E.为32 bit单精度浮点运算优化,所以基本参数为32 x 4的128 bit SIMD。对比之下,SW 26010是面向运算的,所以为64 bit双精度浮点运算优化,基本参数为64 x 4的256 bit SIMD。64 bit双精度浮点运算为每周期8操作。

————————————————————————————————————————————

単体プロセッサでGPU并の性能を発挥

发挥了GPU级别性能的单处理器

————————————————————————————————————————————

IMPE (Intelligent Memory Processing Element)は、SW26010の3つ目のプロセッシングユニットだ。CPEクラスタに付属するメモリコントロールユニットと统合され、メモリアクセスオペレーションをターゲットとしたプロセッサだ。

IMPE(Intelligent Memory Processing Element 智能存储处理核心),SW 26010的第3个的处理单元。与CPE集群附属的内存控制器合并,用于操作存储器存取的处理器。

————————————————————————————————————————————

シングルイシューの命令ユニットのインオーダ実行コアで、各実行パイプにバッファがある。データシャッフルネットワークがあり、异なるレイアウトのメモリアクセスオペレーションに対して、メモリアクセス前に対応できるようになっている。

设计为单指令执行单元的专用核心,用于流水线缓存。可以在内存访问之前,调动网络数据,对不同版面的内存存取做操作。

————————————————————————————————————————————

SW26010は、単体プロセッサで3.06 TFLOPS (64-bit倍精度浮动小数点演算)と、GPU并の演算性能を达成する。

SW 26010单处理器3.06 TFLOPS(64 bit双精度浮点运算),达到了GPU级别的运算性能。

————————————————————————————————————————————

动作周波数は1.45GHzで、256个のCPEがそれぞれ256-bit(64-bit x4way)の积和算が各サイクルに可能、4个のMPEが2ユニットの256-bit(64-bit x4way)の积和算が各サイクルに可能。合计で3.06 TFLOPSとなる。Sunway TaihuLightシステム全体では、40,960ノードとなり、ピーク性能は125PFLOPSとなる。

主频1.45 GHz,256个CPE每个都可达到每周期256 bit(64bit x 4way)的乘加运算,4个MPE每个都可达到每周期2个256 bit(64bit x 4way)的乘加运算,合计3.06 TFLOPS(译者注:1.45G*256*1*4*2+1.45G*4*2*4*2=3062.4G≈3.06T)。Sunway TaihuLight(神威.太湖之光)整个系统,40960个节点,合起来峰值性能达125 PFLOPS。

————————————————————————————————————————————

演算性能は极めて高いSW26010とSunway TaihuLightだが、メモリ帯域はSW26010で136.5GB/sと非常におとなしい。GPUが500GB/sを超えていることを考えると、バイト/FLOPS比では不利となる。

虽然SW 26010和Sunway TaihuLight(神威.太湖之光)的运算性能极高,但SW 26010 136.5 GB/s的内存带宽却非常保守。考虑到GPU能达到500 GB/s以上,这可能会导致Byte/FLOPS比不高。

————————————————————————————————————————————

また、ディープラーニングで脚光を浴びている低精度演算もサポートしておらず、目的とユースケースをある程度限定したスパコンと言える。ただし、ディープラーニングを视野に入れた研究开発も行なっているようだ。

另外,备受瞩目的深度学习(译者注:当下流行的一种人工智能算法)所需要的低精度运算也支持,一般来说目标使用案例的类型会限制了超级计算机的用途。然而,深度学习要能够进入大众视野还需要进一步开发研究。