Cellプロセッサの紹介

Matthew Scarpinoが、Cellプロセッサとは何か、どのように動くのか、基本的なレベルで解説している。

2007年9月、ギネスブックが世界で最も強力な分散コンピューティングシステムの新記録保持者を発表しました。 それは、従来の高性能コンピュータのクラスタではなく、通常のPCとプレイステーション3コンソール(PS3)で構成された世界規模のネットワークでした。 Folding@Home」と呼ばれるこの分散コンピューティングシステムは、タンパク質の折りたたみをシミュレートし、病気の発生メカニズムを分析します。

PS3が参加する前、このネットワークの性能はわずか0.25ペタフロップ(1秒間に250億回の浮動小数点演算)でした。 しかし、Folding@Home クライアントが PS3 上で動作するようになると、計算速度は 6 か月で 4 倍になり、Folding@Home は 1 ペタフロップのバリアを破った最初の分散コンピューティング システムとなりました。 コンソールの数は PC ほど多くはありませんが、Windows/Mac/Linux コンピュータの合計よりも多くの計算能力を提供しています。 Folding@Home パフォーマンス統計 (4 月 16 日に記録) 2008)

OS Type

Current Pflops

Active CPUs

総CPU数

Windows

190.0

190.0892

1,986,517

Mac OS X/PowerPC

8,478

114,326

Mac OS X/Intel

7,428

45.X.X.X.

Mac OS X/Photo/Intel

Linux

27,796

286,172

PlayStation 3

40,880

492.1

492.2

492.0491

PS3の驚異的な演算能力はCell Broadband Engine、通称Cellプロセッサまたは単にCellによって提供されています。 STI アライアンス (ソニー、東芝、IBM) が開発した Cell は、IBM の PowerPC アーキテクチャの汎用能力と、最も要求の厳しいゲーマーやグラフィック開発者をも満足させる十分な数値処理能力を兼ね備えています。 一方では、Linux などの一般的なオペレーティング システムを Cell にインストールし、PC 上で実行するのと同じようにアプリケーションを便利に実行できます。 一方では、通常の CPU をはるかに超える速度で計算量の多いアルゴリズムを実装でき、スーパーコンピュータと競合することさえあります1。 オペレーティングシステムは1つのPowerPC Processor Element(PPE)で実行され、高速計算は一連のSynergistic Processor Element(SPE)で実行されるのです。 これら 2 種類のコアは、それぞれのタスク用に特別に設計されており、それぞれが異なる命令セットをサポートしています。

個別に考えると、これらの処理要素は理解しやすく、プログラムするのも簡単です。 難しいのは、それぞれの強みを最大限に活用するために、動作を調整することです。 これを達成するために、コーダーはCell固有のプログラミングコマンドを知り、デバイスのアーキテクチャ(処理要素、相互接続、およびメモリ構造)について確かな知識を持っている必要があります。 本書の多くはプロセッサのアーキテクチャを掘り下げていますが、コードで使用および構成できる側面のみを取り上げています。 コンピュータアーキテクトのような考え方に慣れていない方には、圧倒されるような話題もあるかもしれませんが、心配は要りません。 必要なことはすべて説明します。 この章の目標は、Cellプロセッサとは何か、どのように動作するのかを基本的なレベルで説明することです。

1.1 Cellプロセッサの背景

Cellは従来のものとは大きく異なるため、なぜ作られたのか、その設計を形作った企業の力について知っておくと役に立ちます。

History of the Cell

Sony は 1999 年に PlayStation 2 の開発を終え、翌年には発売しました。 しかし、当時の出井社長は、「PS2の上を行く次世代機ができるのか」と緊張していた。 次世代機でPS2の上を行くにはどうしたらいいのか、これ以上何をすればいいのか。 その答えは2つあった。 ブロードバンドマルチメディア機能を搭載し、グラフィック処理能力を飛躍的に向上させることだ。 そのために、IBMのルイス・ガースナーCEO(当時)と相談し、新しいハードウエアを開発した。

ソニー・コンピュータエンタテインメントの久夛良木健は、ハードウェアの要件を具体化し、最先端の技術をはるかに超える要求をした。 久夛良木は、各プロセッサをネットワーク化された大きな存在のビルディングブロックとして想定し、このデバイスを「Cell」と名付けた。 そして、「Cell Broadband Engine(CBE)」と命名したのである。

東芝がCellを民生機器に応用することに興味を示し、2001年にソニー、東芝、IBMはSTIアライアンスの結成を発表しました。 その目的は、画期的なプロセッサアーキテクチャを研究・開発し、製造することであった。

CellのチーフアーキテクトであるJim Kahle氏は、CBEの要求を満たすには、従来のシングルコアのプロセッサでは消費電力が大きすぎると判断したのです。 そこで彼は、複数のプロセッサーを1つのチップに搭載し、電力効率を高めた設計を選択した。 最終的なアーキテクチャは、1つの中央演算素子と8つの高速演算専用素子の計9つのコアで構成された。

STIデザインセンターは、本稿執筆時点で400人を超えるエンジニアを抱えるまでに成長した。 Cellの設計者の一人であるH.Peter Hofstee博士は、SPEのチーフサイエンティストとチーフアーキテクトを兼務している。 最近のプレゼンテーションで、彼は Cell の設計を推進した主な目標を挙げています。

  1. ゲームおよびマルチメディア アプリケーションでの優れたパフォーマンス
  2. ユーザーとネットワークへのリアルタイム応答性
  3. 幅広いプラットフォームへの適用性

2004 年に、イーストフィッシュキルの IBM 半導体製造工場では最初の Cell プロトタイプを生産しました。 STIのエンジニアはLinuxをインストールし、一般に言われている3~4GHzの範囲を超える速度でプロセッサをテストしました。 プロトタイプは合格だった。 翌年、ソニーと IBM は、このデバイスをソニーの次世代コンソールに統合するために熱意をもって取り組み、期待に満ちたゲーマーたちは、2005 年の Electronic Entertainment Expo (E3) で PlayStation 3 を初めて目にすることになったのです。 パワフルな Cell プロセッサーの頭脳に加えて、新しいコンソールは最大解像度 1080p と高解像度ビデオ用の Blu-ray ドライブを提供しました。

同じ年に、IBM は開発者が Cell 用のアプリケーションを構築できるように、最初の CBE Software Development Kit (SDK) をリリースしました。 この SDK は、両方のタイプのプロセッシング エレメント用のコンパイラ、シミュレータとデバッガを組み合わせたもの、多数のコード ライブラリ、および Eclipse ベースの開発環境を提供します。 本書の大部分は、SDK とそれを使用してアプリケーションを構築する方法に関するものです。

2008 年半ば、IBM Roadrunner と呼ばれる最初の Cell ベースのスーパーコンピュータが Los Alamos 国立研究所でテストされました。 12,960 個の Cell プロセッサと 12,960 個の Opteron を搭載した Roadrunner は、処理速度 1.026 ペタフロップスに達し、TOP500 リストのスーパーコンピュータの中で最速のものとなっています。 その速度は、2 位のスーパーコンピュータ BlueGene/L の 0.478 ペタフロップスの 2 倍以上です。

Potential of the Cell Processor for Scientific Computing

2005 年に、ローレンスバークレー国立研究所は Cell の計算性能を調査し、その結果を The Potential of the Cell Processor for Scientific Computing というレポートに記録しています。 彼らはさまざまなアルゴリズムをシミュレートし、Cellの処理速度をAMD Opteron、IntelのItanium2、CrayのX1Eといった類似のプロセッサの処理速度と比較したのである。 表 1.2 はその結果をまとめたものです。 ローレンス バークレー国立研究所の研究結果 (すべての値は Gflops/s)

Algorithm

Cell プロセッサー

Cray X1E

AMD Opteron

Intel Itanium2

密行列乗算(単精度)

密 行列乗算(倍精度)

対称疎な行列 ベクトル乗算(単精度)1

対称性 疎行列ベクトル乗算(倍精度)1

対称でないもの 疎行列ベクトル乗算(単精度)1

非対称疎行列ベクトル乗算(倍精度)1

2-D高速フーリエ変換(単精度)2

2-…D高速フーリエ変換(倍精度)2

注意すべき点が2点あります。 まず、この結果は、アルゴリズム実行に必要な時間ではなく、数十億フロップ(1秒あたりの浮動小数点演算)の計算速度を指している。 第2に、第1世代のCellの乗算器は単精度であるため、倍精度の値よりも単精度の値の方が性能が良いということである。 しかし、第2世代は倍精度値のハードウェア乗算を提供します。

信号処理と計算数学に興味のあるエンジニア(私のような)にとって、この結果は驚異的としか言いようがないものです。 この研究は、とんでもない宣伝文句を正当化するものです。 Cell は、通常の CPU とほぼ同じコストと電力 (約 50 ~ 60 W) で、本当にスーパーコンピューターのような能力を提供します。

コメントを残す

メールアドレスが公開されることはありません。