笠原一輝のユビキタス情報局

多くが謎に包まれたままのSnapdragon 845

Qualcommが発表したSnapdragon 845

 Qualcommが、Snapdragon 845を発表した(別記事「次世代ハイエンドSoC「Snapdragon 845」の詳細が明らかに」参照)。Snapdragon 845は、プロセスルールこそSamsung Electronicsの10nmと前世代のSnapdragon 835と同じだが、内部アーキテクチャの改善により、性能が30%程度向上しているのが大きな特徴となる。

 本記事では、そうしたSnapdragon 845がどのようなSoCであるのか、Qualcommが12月上旬にマウイ島で行なったSnapdragon Tech Summitのセミナーなどを取材した内容から解説していきたい。

プロセスルールは10nm LPPにちょっと進化、だがトランジスタ数は非公表の意味

 Qualcommが発表したSnapdragon 845は、前世代となるSnapdragon 835と同じSamsung Electornicsのファウンダリサービスを利用して製造されている。製造に利用されているプロセスルールは、835と同じ10nmとなるが、835で利用されていたLPEからLPPへと変更されている。

百円硬貨と比較しているSnapdragon 845、パッケージのサイズは24×24mmとSnapdragon 835と同じ。なお、この世代からMSM8996のようなMSM型番はなくなり、Snapdragon 845のSDM845となる。モデム内蔵はSDMとなり、モデムなしバージョンはSDAになる

 Qualcomm Technologies 製品管理担当上席副社長 キース・クレッシン氏は「10nmLPPは、10nmLPEに比べて最適化が進んでいるプロセスルール。このため、若干の性能向上と電力効率の改善が期待できる」と説明するが、具体的に何が変わっているかなどについては明らかにしなかった。

 Qualcommは835の発表時にトランジスタ数は30億だと発表したが、今回は質疑応答のなかでトランジスタ数を問われると「数字は重要ではない、それよりもユーザー体験などが重要だ」(クレッシン氏)と、半導体メーカーとしてはやや意味不明な回答でトランジスタ数の公開を拒否した。自分たちに都合の悪いことを言わないというのは世の常だが、前世代では発表している客観的な数字を明らかにできないのというのは、なにか不利があると捉えられてしまうので、そこはきっちり発表したほうが良かったのではないだろうか……。

 そうしたことを考えれば、おそらくトランジスタ数は増えてはいないと考えるのが妥当だろう。つまり、プロセスルールの進化に伴うトランジスタ数の増加による性能向上というメリットを得られない世代の製品、それがSnapdragon 845だと考えられる。しかし、前世代に比べて30%の性能向上と主張している。

まだまだ謎が多いCortex-A75/55ベースのKryo 385だが、性能は25~30%増しに

 そうした性能向上の大部分は、CPUとGPUの進化から来ると考えられる。Qualcomm Technologies 製品管理 上席部長のトラビス・ラニアー氏は「CPUも、GPUもスクラッチから設計している」と述べ、CPUやGPUに大きく手が入っていることを強調した。

Snapdragon 845のCPUとなるKyro 385

 CPUのKryo 385は、Snapdragon 835に搭載されていたKryo 280と同じく、ArmのBoC(Based on Cortex technology)ライセンスに基づいた製品になる。

 BoCライセンスというのは、大きくいうと3種類あるArmのライセンス形態(アーキテクチャライセンス、IPライセンス、BoC)のうち、一番最近にできたライセンス形態で、CortexのIPライセンスをベースにして、SoCベンダーが独自の機能を組み込むことができるものだ。QualcommのようにCPUだけでなく、それ以外の部分のノウハウ(たとえば内部バスやシステムバスなど)を持っているSoCベンダーに最適なライセンス形態となっている。

 Kryo 280ではCortex-A72ないしはCortex-A73がベースになっていると業界では考えられていたが、Qualcommはベースを明らかにしていなかった。しかし、Kryo 385ではベースとなっているのは、今年(2017年)の5月にArmが発表(別記事「【詳報】ARM、VRやAIも見据えた新世代CPU Cortex-A75とGPU Mali-G72」参照)したばかりの最新製品であるCortex-A75とCortex-A55がベースであると明らかにした。

 Big.LITTLE動作で高性能側(Big側)がCortex-A75、省電力側(LITTLE)がCortex-A55で、それぞれに4コアずつのオクタコア構成になっている。

 ただし、今回の記者説明会ではQualcommはBoCライセンスに基づいてどのような変更を加えたのかを公開しなかった。たとえば、ArmはCortex-A75/55でDynamiQという仕組みを導入しているが、これに対応しているのかどうかも明らかにしなかった。

 しかしながら、クロック周波数はBig側も、LITTLE側も引き上げられている。Snapdragon 835ではBig側が最大2.45GHzまで引き上げられる設定になっていた。しかし、Snapdragon 845では2.8GHzまで引き上げることが可能になっており、Cortex-A75ベースになってアーキテクチャの改良分(ArmではA73と比較して同クロックで20%の性能改善と説明している)とクロック周波数が引き上げられた分により性能が向上が考えられ、QualcommではBig側の性能向上を25~30%と説明している。

実質的に何も明らかにされなかったAdreno 630

 Qualcommのラニアー氏はGPUのAdreno 630について、「スクラッチから設計して性能が30%、消費電力が30%向上している」と説明した。その一方で、ではアーキテクチャのどこに手を入れ、どこが理由で30%上がっているのかに関しては一切明らかにしなかった。

 AMDにせよ、NVIDIAにせよ、そしてIntelにせよ、自社のGPUがどこを改善しているか世代ごとにきちんと情報公開をしていることを考えると、この点はやはり課題が残る。これまで通信の会社として存在してきたQualcommにとって、情報公開はあまり重要ではなかったのかもしれないが、競合他社が膨大な資料を公開しているのに比べ、やや疑問符はつけざるを得ないのも事実で、Qualcommが本気でコンピューティングを重視した半導体メーカーになりたいのなら今後は改善してほしい。

Snapdragon 845の内蔵GPUとなるAdreno 630、詳細は非公開

 ただ、GPUの性能向上に大きく寄与している要素としては、システムキャッシュの搭載が挙げられる。これまでSnapdragonのキャッシュ階層は、CPUのL1、L2、L3キャッシュだった。GPUの内部にどのようなキャッシュ階層があるかは、非公開であるためわからないのだが、システムキャッシュは、CPUやGPUの外部、具体的にはメモリコントローラの手前に置かれており、CPU、GPU、DSP、ISPなどのSnapdragon 845に内蔵されている演算器のすべてが利用できるようになっている。

 Snapdragon 845のようなヘテロジニアス(非対称)なSoCの場合には、それぞれの演算器がメモリ帯域を取り合うことになる。そこでシステムキャッシュのような仕組みがあると、キャッシュにヒットした場合には、メインメモリにまでアクセスが発生せず、メモリ帯域の有効利用が可能になる。とくにGPUはメモリ帯域を必要とするので、そのことがGPUの処理能力に与える効果は大きい。

Snapdragon 845に内蔵されているシステムキャッシュ、3MB搭載されているCPU、GPU、DSPなどCPU以外も利用可能なキャッシュメモリ、狙いはメモリ帯域のオフロード

 こうした仕組みは、別にSnapdragon 845が初めてというわけではなく、たとえばIntelのCoreプロセッサも、GT3eやGT4eなどの演算器の数が多い内蔵GPU(Iris Graphics)が搭載されているSKUには、eDRAMと呼ばれる64MBないしは128MBのシステムキャッシュを内蔵しており、同じような意味合いに利用されている。

 ただ、IntelのeDRAMが「embedded DRAM」であってオンダイ(ダイに内蔵されている)ではなく、インターポーザーと呼ばれる基板上に別チップとして実装されているのに対して、Snapdragon 845のシステムキャッシュはオンダイになっており、性能的には有利だ。その替わりとして容量は3MBとあまり多くなく、大容量のデータをメモリに展開するGPUでは効果は限定的とも言える。

NPUは搭載していないが、替わりにNPEでプログラマブルなAIを実現し、性能は3倍に

 今回のSnapdragon 845でもっとも注目したいのは、いわゆる“NPU”(Neural Processing Unit)のようなマシンラーニング/ディープラーニングの推論アクセレータの機能を搭載してこなかったことだ。AppleのA11 Bionic、HUAWEI/High SiliconのKirin 970(別記事「HuaweiのAI内蔵CPU「Kirin 970」はスマホの進むべき道を示す重要な製品だ」参照)の例のように、AIを実現するための重要な要素としてNPUを搭載するSoCは増えている。言ってみればトレンドであるNPUを搭載しなかったというそのことがニュースでもあり、実際質疑応答でもこの疑問に対して質問が集中した。

 これに対してQualcommのクレッシン氏は「固定ハードウェアは悪くないチョイスだが、その代わりにダイに占める割合が大きくなる。なのに、その対応ソフトウェアができる頃には、もう製品としての寿命が尽きているかもしれない。そう考えればプログラマブルなソリューションのほうが現時点ではメリットがあると考えた」と説明している。

Snapdragon 845ではCPU、GPU、DSPをヘテロジニアスに利用する

 QualcommはSnapdragon 835の発表時にNPE(Neural Processing Engine)という仕組みを導入している。具体的には、Snapdragonに内蔵されているCPU、GPU、DSPなどを柔軟に利用する仕組みで、OEMメーカーがNPE SDKを利用してAIソフトウェアを作成すると、ソフトウェアをコンパイルする段階などで処理に応じて自動でCPU(FP32/INT8)、GPU(FP32/FP16)、DSP(HVX/INT8)のなかから最適な演算機、1つないしは複数に分散して処理を行なう。

 このNPE SDKはCaffeやTensorFlowといったマシンラーニング/ディープラーニングのフレームワークに対応しており、AIを効率よく処理できるアプリケーションが簡単に作れるようになっている。Qualcommとしては、835で導入したこの仕組みがうまく機能している以上、そこは変える必要がないという判断だろう。

NPEの仕組み、TensorFlowなどのマシンラーニング/ディープラーニングのフレームワークに対応している

 確かにマーケティング的な側面と消費電力の観点を無視すれば、それは正しい。そして、テクノロジー的にも、どんな機能を実装するかは設計段階で決まってきてしまうアクセラレータよりは、プログラマブルなNPEの仕組みのほうが、さまざまなアプリケーションに活用できるのは明らかで、よりスマートなソリューションだと言える。一方で、AppleのA11 Bionicにせよ、HUAWEI/High SiliconのKirin 970にせよ、よりマーケティングな側面が強く、Qualcommのソリューションが“新しさ”感がないことはQualcommにとって悩みの1つと言えるだろう。

Qualcommは以前の世代からこのNPEを利用できるようにしてきた

 QualcommはこのNPEを利用した仕組みの最適化をさらに進め、今回のSnapdragon 845でNPEベースのアプリケーションを利用した場合は、835に比べて3倍の性能を実現していると説明している(ただ、繰り返しになるがどこのどの部分を最適化して3倍になっているかについてQualcommは説明していない)。

NPEを利用したアプリケーションの例。Snapdragon 835を搭載したGalaxyシリーズでのデモ、背景に色をリアルタイムにつけている。こうしたNPEのAIアプリケーションをそのままSnapdragon 845で活用できる

 実際、QualcommはそうしたNPEを利用したアプリケーションを利用した例として、AIを利用して、深度を計測することで背景ないしは人物を自動で認識し、人物ではないところにぼかしなどのエフェクトをかける機能を公開した。これをうまく活用すると、カメラのポートレートモードで、人物はぼかさず背景だけをぼかして、一眼レフで撮ったような写真を撮影するということが可能になる。そうした機能は、一般的には複眼レンズや深度センサーなどのカメラのハードウェアが必要になるが、こうしたAIを活用することで一般的な単眼レンズでも実現することが可能になる。

Snapdragon 845でのデモ、ボタン1つで背景だけにぼかしを入れている。AIが自分と背景を認識して、背景だけにぼかしを入れている。応用すると単眼のカメラでポートレートモードで背景をぼかした映像を撮影したりが可能

 こうしたデモなどを見ていると、筆者は技術的には、QualcommがSnapdragon 835で導入したNPEを845でも継続したのは正しいと思う。OEMメーカーがNPEに対応したAIソフトウェアを835用に作っていれば、それは845でもそのまま使えて、かつ性能が3倍になるのだから、メリットは大きい。これに対して、AppleやHUAWEIのNPUはまだ対応しているソフトウェアも多くなく、これからソフトウェアを作り込まないといけない。そう考えれば、現時点でのユーザーメリットはNPE継続の方が大きいと言える。

Windowsデバイスへの搭載も期待される

 Snapdragon 835は、他社に先駆けてSamsung Electronicsの10nmプロセスルールを採用したことで性能が大きく向上し、成功を収めた。Snapdragon 845はその成功の上に成り立っており、その正常進化版だと評価してよく、かつそこからさらに性能が向上していることは指摘しておきたい。

 そして忘れてはならないことは、Snapdragon 835から最適化が進んだことで、消費電力はSnapdragon 835からさらに削減されている点。QualcommがSnapdragon Tech Summitで行なったデモでは、Snapdragon 835とSnapdragon 845に同じ処理をさせた場合、平均消費電力が削減されていることが示された。

 具体的には動画再生時にSnapdragon 835が3.8W弱の平均消費電力だったのに対して、Snapdragon 845は3.1W弱にまで削減されていた。約22%の平均消費電力の削減になっており、同じプロセスルールでこれだけの消費電力削減になっているのは、CPU、GPU、システムキャッシュなどが搭載されていることが効いていると考えることができるだろう。性能が上がっただけでなく、消費電力が下がりバッテリ駆動時間が伸びるというのがSnapdragon 845の特徴と言える。

Snapdragon 835(左)とSnapdragon 845(右)のシステム全体の平均消費電力の比較(SoC以外も含む)。835が3.7Wの平均消費電力であるのに対して、835のほうは3.1Wに留まっている。

 すでにQualcommはOEMメーカーへのサンプル出荷を開始しており、搭載したスマートフォンは来年の前半に登場する見通しだ。現時点では、QualcommはSnapdragon 845のWindows対応に関しては何も明らかにしていないが、前回の記事「明らかになってきたArm版Windows 10の課題とそのメリット」でも触れたとおり、業界ではMicrosoftが自社ブランド製品となるSurfaceにSnapdragon 845を搭載すると信じられており、Snapdragon 845でもWindows 10に対応してくると考えられている。そちらの展開も今後要注目だ。