Pixel 9a Tensor G4 の浮動小数点演算能力と Linux ターミナル

Pixel 9a で vfpbench を走らせてみました。vfpbench は CPU の浮動小数点演算能力の理論的なピーク値に焦点を当てたベンチマークです。

以下の表は Pixel 8/8a との比較のための抜粋です。動作クロックが上がっている分だけシングル性能は高いはずですが、1コア減っているためマルチスレッドでは差がつきません。Pixel 8 比では全体的に低い値になっています。Pixel 8a の Single (Cortex-X3) の値が極端に低いですが、おそらく測定時に発熱で制限(サーマルスロットリング)がかかり、クロックが上がらなかったためと思われます。

fp32 SingleFP32 MULTIFP64 SINGLEFP64 MULTI
Pixel 869.7 GFLOPS281.9 GFLOPS28.0 GFLOPS139.6 GFLOPS
Pixel 8a37.7 GFLOPS245.1 GFLOPS18.8 GFLOPS122.2 GFLOPS
Pixel 9a67.9 GFLOPS256.5 GFLOPS33.8 GFLOPS127.4 GFLOPS
SINGLE = Single Thread、MULTI = Multi Thread

全部のデータはこちらで参照できます。

個々の命令の特性を見ると、クロックあたりのピークの浮動小数点演算能力はほぼ同等で特性もかなり似通ったものになっていることがわかります。

Tensor G4 自体は G3 と比べると CPU コアの世代が上がっています。以下は CPU コアの比較表です。

TENSOR G1TENSOR G2TENSOR G3TENSOR G4
PrimeX1 (x2)X1 (x2)X3 (x1)X4 (x1)
BigA76 (x2)A78 (x2)A715 (x4)A720 (x3)
LittleA55 (x4)A55 (x4)A510 (x4)A520 (x4)

Tensor G3 で唯一 32bit 命令2対応していた A510 が無くなり、Tensor G4 では完全に 64bit 命令のみ対応の CPU コアに置き換わりました。Tensor G4 では ARM の 32bit 命令のプログラムは動きません。ARM の各 CPU コアの 32bit 命令対応についてはこちらの記事を参照してください。

もっとも、OS としては Pixel 7 の Tensor G2 世代から 32bit アプリケーションには非対応となっており、すでに完全に 64bit に置き換わっています。そのため 32bit 対応コアがなくなっても影響はありませんのでご安心ください。

vfpbench の話しに戻ります。Tensor G4 の LITTLE コア A520 は 4個搭載されていますが、シングル時の浮動小数点演算性能に対して、4コアマルチスレッドでも 4倍ではなく 2倍にしかなっていません。 以下は LITTLE コアだけの比較になります。

FP32 SINGLEFP32 MULTIFP64 SINGLEFP64 MULTI
Pixel 7a (A55)14.0 GFLOPS54.7 GFLOPS7.0 GFLOPS27.8 GFLOPS
Pixel 8 (A510)27.1 GFLOPS61.3 GFLOPS13.5 GFLOPS29.1 GFLOPS
Pixel 8a (A510)27.0 GFLOPS56.6 GFLOPS13.5 GFLOPS28.0 GFLOPS
Pixel 9a (A520)30.9 GFLOPS62.7 GFLOPS15.4 GFLOPS31.7 GFLOPS
SINGLE = Single Thread、MULTI = Multi Thread

例えば Pixel 9a (A520) の FP32 SINGLE は 30.9 GFLOPS ですが、FP32 MULLTI でも約 2倍の 62.7 GFLOPS しかありません。これは A520 が A510 と同じように 2コアで浮動小数点演算ユニットを共有しているためだと考えられます。

A55 時代の Pixel 7a (Tensor G2) では Multi 時のスコアに対して Single の値が 1/4 になっています。つまり A510/A520 は A55 と比べて Single 時の性能が 2倍になっているわけです。

また LITTLE コアだけの比較では Pixel 8/8a の G3 よりも Pixel 9a の G4 の方が速度が上がっています。それぞれクロック差の影響がきちんとスコアに反映されています。同様に同じ G3 を搭載した Pixel 8 と 8a のパフォーマンスも同等です。LITTLE コアは電力効率が良いためにサーマルスロットリングの影響を受けなかったのだと思われます。

A510 におけるコアの共有についてはこちらで解説しています。

Linux 開発環境 (ターミナル) が 9a で使えないことについて

Pixel 9a を実際に使ってみて少々予想外だった点は、Linux 開発環境 (ターミナル) 機能が使えなかったことです。

「Linux 開発環境」は Pixel の OS に標準で含まれている Linux のコマンドラインの動作環境です。ChromeOS の同名の機能、もしくは Windows の WSL に相当します。Linux 開発環境 (ターミナル) 機能については以下の記事で解説しています。

おそらく使えないのは発売当初だけで、将来の OS 更新によって Pixel 9a でもサポートするのではないかと思われます。

幸いなことに、発売したばかりの Pixel 9a も Android 16 のベータプログラムに含まれていることがわかりました。Pixel 9a でも Android 16 Beta 4 をインストールすると、開発者向けオプショにから Linux 開発環境を有効にすることができました。

どうしても今すぐ Pixel 9a で Linux を使いたいという場合はベータプログラムを利用するのも一つの手かもしれません。もちろんメインのスマートフォンとして使用している場合はお勧めしません。