Vengineerの戯言

人生は短いけど、長いです。人生を楽しみましょう!

Google Tensor G2 の Edge TPU のデバイスドライバからわかったこと!(その1)

はじめに

下記のGoogle Tensor G2 内の Edge TPU のデバイスドライバソースコードを眺めたので記録として残します。

vengineer.hatenablog.com

Google Tensor G1 内の Edge TPU のデバイスドライバについては、下記のブログを見てください。

vengineer.hatenablog.com

Google Tensor G2 の Edge TPU の codename は、janeiro

Google Tensor G1 の Edge TPU の codename は、abrolhos でしたが、Google Tensor G2 の Edge TPU の codename は、janeiro のようです。下記にソースコードがあります。

android.googlesource.com

ざーと見て気が付いたのは、下記のmailbox の部分です。

#define EDGETPU_NUM_VII_MAILBOXES 7
#define EDGETPU_NUM_P2P_MAILBOXES 0
#define EDGETPU_NUM_EXT_DSP_MAILBOXES 4
#define EDGETPU_NUM_EXT_AOC_MAILBOXES 1
#define EDGETPU_NUM_EXT_MAILBOXES (EDGETPU_NUM_EXT_DSP_MAILBOXES + EDGETPU_NUM_EXT_AOC_MAILBOXES)
#define EDGETPU_NUM_MAILBOXES (EDGETPU_NUM_VII_MAILBOXES + EDGETPU_NUM_EXT_MAILBOXES + 1)

abrolhos の場合は、下記のようになっています。

#define EDGETPU_NUM_MAILBOXES 8
#define EDGETPU_NUM_VII_MAILBOXES (EDGETPU_NUM_MAILBOXES - 1)
#define EDGETPU_NUM_P2P_MAILBOXES 0
#define EDGETPU_NUM_EXT_MAILBOXES 0

janeiro では、

#define EDGETPU_NUM_EXT_DSP_MAILBOXES 4
#define EDGETPU_NUM_EXT_AOC_MAILBOXES 1

が増えています。

Google Tensor G2 では、DSP の文字が

下記の記事に Google Tensor G2 のざっくりなブロック図があるんですが、その中に DSP が載っています。

reameizu.com

下記のGoogle Tensor G1の発表の時は、DSPという文字はありませんでした。

blog.google

GXP というのがデバイスドライバ

DSP の codename は、Aurora (Amalthea) のようで、下記にソースコードがあります。

android.googlesource.com

amalthea/config.h には、

#define GXP_DRIVER_NAME "gxp_platform"
#define GXP_NUM_CORES 4

とあります。DSPのコア数は、4個のようです。この 4 が

#define EDGETPU_NUM_EXT_DSP_MAILBOXES 4

の 4 になるのでしょうか?

AOCは?

もう一つの

#define EDGETPU_NUM_EXT_AOC_MAILBOXES 1

ソースコードもあります。WhiteChapel AoC とありますので、Google Tensor G1 からあるもののようです。

android.googlesource.com

どうやら Audio 関係のようです。

おわりに

Google Edge TPU、Google Tensor G1 では、今までは MIPI => ISP からの画像処理だったけど、Google Tensor G2 では、加えて、DSP からとAudio入力のデータも処理できるみたいですね。。