Linux」カテゴリーアーカイブ

SteamDeck の Linux Desktop で日本語入力環境を作る

前回 SteamDeck には簡単に Linux 環境をインストールできることがわかりました。SteamOS には最初から distrobox コマンドがインストールされており、コマンド一つで各種 Linux 環境を入れることができます。

例えば Ubuntu をインストールするならコマンドラインから「distrobox create -i ubuntu:22.04」のように実行するだけです。apt 経由で各種ソフトウエアを利用できるので開発環境の構築なども簡単です。またインストールした環境はコンテナなので、失敗しても削除できますしすぐやり直すことができます。気軽にテストすることができます。

今回は Debian で GUI の日本語入力環境を整えてみます。

先に USB または Bluetooth キーボードを接続しておいてください。マウスもあった方が良いですが、SteamDeck 右側のタッチパッド + R2(左クリック) / L2(右クリック) でも代用できます。

(1) SteamOS のデスクトップに切り替える

  1. 「STEAM」ボタン → 「電源」→「デスクトップに切り替え」

以降再起動でゲーミングモードに戻った場合は、再びこの操作でデスクトップに切り替えてください

(2) 日本語表示に切り替える

  1. デスクトップ左下の Application Launcher アイコン → Settings → System Settings
  2. Regional Settings → 一番上にある Language 右端の「Modify…」
  3. 「Change Language」→「日本語」を選択
  4. 右下の「Apply」→ 右上の「Restart now」→「OK」
  5. 再起動するので、再びデスクトップに切り替えておきます。

(3) キーボードを日本語配列に切り替える

接続したキーボードが日本語配列の場合以下の設定を行います。英語配列キーボードを使用していて不要な場合はスキップしてください。

  1. デスクトップ左下の「アプリケーションランチャー」アイコン → 設定 → KDE システム設定
  2. 入力デバイス →「レイアウト」タブを選択 → 「レイアウトを設定」にチェックを入れる
  3. 「+Add」ボタン → Search欄に「109」を入れて「日本語 (OADG 109A)」を選択 → OK
  4. もとからあった英語配列を削除します。”英語(US) ” を選択して「-Remove」ボタンで削除
  5. 右下の「適用」クリック → 設定ウィンドウを閉じる

(4) ホームディレクトリに .distroboxrc を作成

  1. デスクトップ左下の「アプリケーションランチャー」アイコンから「ユーティリティ」→「KWrite」を開く
  2. メニューの「ファイル」→「新規」
  3. 以下の内容を書き込む
xhost +si:localuser:$USER
export PIPEWIRE_RUNTIME_DIR=/dev/null
  1. メニューの「ファイル」→「名前をつけて保存」
  2. 左上の「場所」の中から「ホーム」をクリックして選択
  3. 下の「名前(N):」の欄に「 .distroboxrc 」と入力
  4. 右下の「保存(S)」をクリック
  5. KWrite のウィンドウを閉じる

(5) ホームディレクトリの .bashrc を編集

  1. 画面左下のアプリケーションランチャーアイコンから「ユーティリティ」→「KWrite」を開く
  2. メニューの「ファイル」→「開く」
  3. 下の「名前(N):」の欄に「.bashrc」を入力して右下の「開く」をクリック
  4. 一番下に以下の内容を入力
export LANG=ja_JP.UTF-8
export DefaultIMModule=fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
  1. メニューの「ファイル」→「保存」を選択してから KWrite のウィンドウを閉じる

(6) ターミナルから Debian をインストール

  1. 画面左下のアプリケーションランチャーアイコンから「システム」→「Konsole」を開く
  2. ターミナル (Konsole) 内で以下のコマンドを実行
    • (“$” はプロンプトを意味するので、$ を除いた空白以降 “distrobox create ~” 部分を入力して Enter を押します。以後同じです)
$ distrobox create -i debian:12 -n debian
  1. “Do you want to pull the image now? [Y/n]:” と表示されたら「Y] を入力

(7) Debian 環境に入る

  1. 同じようにコンソールのコマンドラインから以下のように実行します。
$ distrobox enter debian

初回はインストールが入るので時間がかかります。

Debian 環境に入るとプロンプトが「(deck@steamdeck ~)$」から「deck@debian:~$」に変わります。

(8) Debian 上で環境構築

以後同じプロンプト「$」で表現していますが Debian に入った状態で行います。

  1. 以下のコマンドを実行します
$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt install -y locales
$ sudo dpkg-reconfigure locales
  1. 言語選択画面になるので、キーボードから [j] キーを入力
  2. ja_JP.UTF-8 が選択されているので [SPACE] キーを押して選択状態にします (“*” マークが付きます)
  3. 同時に下段の < OK > が選択されているはずなので、そのまま [Enter] を 2回押して終了します
  4. 同じようにコンソールから以下のコマンドを実行します
$ sudo apt install -y task-japanese
$ sudo apt install -y fonts-noto-cjk
$ sudo apt install -y fcitx-mozc
$ fcitx

これで Debian 側でインストールしたアプリケーションは日本語入力が可能になります。

(9) キーボード配列の設定その2

タスクバーの右下あたりにキーボードのアイコンが追加されていることを確認します

  1. タスクバーにあるキーボードのアイコン右クリック→「設定」
  2. 「入力メソッド」のタブに、以下のように Mozc が並んでいれば OK です
キーボード - 日本語 - 日本語(OADG 109A)
Mozc

  1. もし日本語キーボードを使用しているのに、上の段が「キーボード ~ 日本語 (OADG 109)」になってない場合は切り替えてください
    • 画面下の「+」ボタンから新たに「日本語」配列を追加して、「-」ボタンで不要なものを削除しておきます
  2. タブを「全体の設定」に切り替えます
  3. 入力メソッドのオンオフ」の部分で、日本語入力切り替え方法を確認します
    • デフォルトでは「Ctrl+Space」が設定されているはずです。
  4. 設定ウィンドウを閉じます

これであとは Debian 側でインストールしたアプリケーションは日本語入力ができます。日本語入力への切り替えは「Ctrl」を押しながらスペースキーです。

注意点としては、デスクトップ左下のアプリケーションランチャーからは起動できず、Debian のコマンドラインから起動する必要があります。またこの手順では自動起動のの設定をしていないので、再起動後は手動で fcitx を起動する必要があります。

再起動後やゲームモードから切り替えた場合に再び Debian 環境に入る手順

  1. Konsole を起動し、ターミナル内で「 distrobox enter debian 」を実行
  2. Debian 環境に入ったらコマンドラインで「fcitx」を実行

タスクバーにキーボードのアイコンがない場合は手動で fcitx を起動してください。

以下アプリケーションごとのインストール例

あくまで例なので必要に応じてどうぞ。

Firefox

Debian 環境に入った状態で以下のようにインストールします。インストールが終われば firefox コマンドで起動できます。この firefox 上では [Ctrl] + [SPACE] で日本語入力ができます。

$ sudo apt install -y firefox-esr
$ firefox

起動時に「KDE ウォレットサービス」の画面が表示された場合はとりあえずキャンセルします。

なお、この Firefox は SteamOS 側のアプリケーションランチャーやタスクバーからは起動できないので注意が必要です。必ず distrobox enter debian で Debian 環境に入ったあとに、コマンドラインから firefox を起動してください。

Chrome

  1. firefox で Chrome for Linux をダウンロードします。「64bit .deb (Debian/Ubuntu 用)」を選択します
  2. ダウンロードしたファイルは Downloads フォルダに入っているので、Debian 環境に入ってからコマンドラインで以下のようにインストールします
$ sudo apt install -y $HOME/Downloads/google-chrome-stable_current_amd64.deb
$ google-chrome
  1. インストールが終わったら「google-chrome」コマンドで起動できます

gnome-terminal

  1. Debian 環境に入ってからインストールします
$ sudo apt install -y gnome-terminal
$ dbus-launch gnome-terminal
  1. ターミナルを起動するには「dbus-launch gnome-terminal」コマンドを実行します

Debian 側から起動したこのターミナルでは日本語入力ができます

VSCode

chrome と同じようにブラウザ上で「~.deb」ファイルをダウンロードし、「apt install 」コマンドでインストールします

  1. firefox で https://code.visualstudio.com を開いて 「.deb」ボタンから VSCode をダウンロードします
  2. ダウンロードが完了すると Downloads フォルダに入っているので、apt コマンドでインストールします (バージョンによってファイル名は異なります)
$ sudo apt install -y $HOME/Downloads/code_1.85.2-1705561292_amd64.deb
$ code
  1. インストールが完了したら、code コマンドで起動できます。もちろんテキストエディタとして普通に日本語入力できます。

Distrobox の管理

SteamOS 側のコマンドライン上で管理できます。同時に複数の環境を実行しないよう、不要なものは stop しておいてください。

インストールされているコンテナの確認

$ distrobox list

実行中のコンテナの停止

$ distrobox stop debian

名前をつけて別の Debian 環境を作成

$ distrobox create -i debian:12 -n debian2

その他詳しくは公式サイトをご覧ください。

活用など

SteamDeck の SteamOS はタブレットやスマートフォンのように電源ボタンによるスリープができます。いつの間にか電源が入っていて知らないうちにバッテリーを消費しているなんてこともなく安定しています。バッテリーも TDP を 3W まで下げることができるので、色々使えるのではないかと思ってます。

関連エントリ

Intel CPU Core i7-13700 (RaptorLake) の vfpbench 結果

Core i 12世代 (Alder Lake) 以降の Intel CPU は P-Core と E-Core、2種類の異なる CPU Core を搭載しています。ARM 系 CPU と同じように必要な負荷に応じてこれらのコアが使い分けられます。

vfpbench では種類によって計測するコアを区別する必要があるのですが、AlderLake 以降の Intel の非対称コアを今まで正しく認識できていませんでした。今回 Core i7-13700 を入手し、ようやく対応できたので結果を載せてみます。なお Linux では非対称コアを識別しますが、WSL1 上では区別できていないのでご注意ください。

以下は Linux で実行した Core i7-13700 の結果です。

結果からわかるように P-Core のピーク値は AVX 256bit の fma x 2 になっています。ここまでは従来の Skylake/IceLake 系と同じですが、mul + add の組み合わせの場合に 3命令実行できていることがわかります。

Ryzen Zen3/4 のように fma + add の組み合わせにならないためピーク値には影響がありませんが、おそらく AlderLake 以降は最大で 256bit x 3 命令が実行できるように拡張されているものと思われます。

P-Core
AVX vmul+addps (32bit x8) n8      :    0.197   124487.7    15561.0  (  8.0 3.1)
FMA vfmaddps (32bit x8) n8        :    0.371   132011.8     8250.7  ( 16.0 1.6)
FMA vfmaddps (32bit x8) n12       :    0.442   165987.5    10374.2  ( 16.0 2.0)
FMA vfma+mlps (32bit x8) n12      :    0.442   124495.1    10374.6  ( 12.0 2.0)
FMA vfma+adps (32bit x8) n12      :    0.381   144625.0    12052.1  ( 12.0 2.4)

また AVX512 が使用できません。そのため本来は対応していたと思われる fp16 演算や bf16 命令などもなくなっています。VNNI はあります。

E-Core の場合はピークが AVX 256bit fma x1 となっており、サイクルあたりの演算能力は P-Core の半分となっています。128bit 以下の場合は 2命令走っているので、実行パイプラインそのものは 128bit が 2本になっていると思われます。

E-Core
SSE addps (32bit x4) n8           :    0.305    32258.5     8064.6  (  4.0 2.0)
FMA vfmaddss (32bit x1) n12       :    0.525    14067.6     7033.8  (  2.0 1.7)
FMA vfmaddps (32bit x4) n12       :    0.521    56609.3     7076.2  (  8.0 1.7)
FMA vfmaddps (32bit x8) n8        :    0.602    65431.3     4089.5  ( 16.0 1.0)
FMA vfmaddps (32bit x8) n12       :    0.902    65432.2     4089.5  ( 16.0 1.0)
FMA vfma+mlps (32bit x8) n12      :    0.914    48433.6     4036.1  ( 12.0 1.0)
FMA vfma+adps (32bit x8) n12      :    0.914    48434.4     4036.2  ( 12.0 1.0)
128 add128 mul128 fma256 最大256 add256 mul256 fma256 最大
P-Core22232223
E-Core22221111

関連エントリ

SteamDeck に Ubuntu で開発環境を作る (Distrobox)

SteamDeck の最新の OS には最初から Distrobox がプリインストールされており、簡単に Ubuntu などの環境を入れられることがわかりました。前回の vfpbench は SD-Card から起動した Windows11 上で走らせましたが、今回は SteamOS 上でそのまま実行できるように Ubuntu を入れてみます。

● デスクトップの設定

以降の一連の作業は USB Hub 経由で SteamDeck に USB のキーボードとマウスを接続した状態で行っています。Bluetooth のキーボード&マウスでも構いません。

(1) デスクトップに切り替える

  1. STEAM ボタン → 電源 →「デスクトップに切り替え」

元のゲーミングモードに戻るには、デスクトップ左上の「Return to Gaming Mode」のアイコンダブルクリックかログアウトを行います。

(2) キーボード配列を日本語に変更する場合

  1. 左下の Application Launcher アイコンクリック→ Settings → System Settings
  2. 一番上の Keyboard → Layouts Tab を開く
  3. 「Configure layouts」にチェックを入れる → 「+ Add」をクリック
  4. “Japanese” で検索して「Japanese (OADG 109A)」を選択
  5. デフォルトで入っている「us English (US)」を選択して「- Remove」をクリック
  6. 右下の「Apply」をクリック

(3) 表示言語を日本語に変更する場合

  1. 左下の Application Launcher アイコンクリック→ Settings → System Settings
  2. Regional Settings → Language 右端の「Modify…」
  3. 「Change Launguage」→「日本語」を選択→右下の「Apply」→右上の「Restart now」→「OK」
  4. 再起動後、ゲーミングモードになっている場合は再び STEAM→電源→「デスクトップに切り替え」

● Distrobox で Ubuntu をインストールする

Distrobox / podman 自体のインストール手順は不要です。公式 Image を使ってクリーンインストールした状態でも /usr/bin にコマンドが含まれていることを確認しました。

  1. 左下の「アプリケーションランチャー」アイコンクリック → システム→ Konsole (KDE Terminal) でコンソールを開く
  2. 以下内容で ~/.distroboxrc ファイルを作成します
xhost +si:localuser:$USER
export PIPEWIRE_RUNTIME_DIR=/dev/null
  1. コンソールで以下のコマンドを実行
$ distrobox create -i ubuntu:22.04

Do you want to pull the image now? [Y/n]: に Y を入力

  1. 以下のコマンドを実行
$ distrobox enter ubuntu-22-04

以後、4. のコマンドだけで Ubuntu 環境に入ることが可能です。またはアプリケーションランチャーからも直接「Ubuntu-22-04」のアイコンを探して起動することができます。

● Ubuntu 環境の設定など

あとは Ubuntu 上で apt コマンドを使ってソフトウエアのインストールができます。

例 vfpbench のために git, clang を入れる

$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt install -y git clang

例 vim + uim-mozc を使った日本語入力を行う場合

  1. ソフトウエアをインストールします

予め (3) の日本語表示設定をしておく必要があります。

$ sudo apt install vim
$ sudo apt install language-pack-ja
$ sudo apt install uim-fep uim-mozc
  1. 以下の内容で ~/.uim ファイルを作成しておきます。
(define default-im-name 'mozc)
(define-key generic-on-key? '"<Control> ")
(define-key generic-off-key? '"<Control> ")
  1. 起動します
$ export LANG=ja_JP.UTF-8
$ uim-fep

例 vscode を使う

  1. https://code.visualstudio.com/Download から 「.deb」「x64」 をダウンロードしておきます。
  2. 以下のコマンドでインストール&起動します
$ sudo apt install ./code_~_adm64.deb
$ code

活用など

SteamDeck の SteamOS はスマートフォンのように電源ボタンで簡単にスリープ可能で復帰も安定しています。持ち歩ける開発環境として便利に使えそうです。

関連エントリ

Windows 10 WSL2 のコンパイル速度比較

Windows 10 May 2020 Update (2004) で WSL2 がリリースされました。

Microsoft: WSL 2 の新機能

I/O が速くなっているらしいので、いつも Android + Termux でテストしている「コンパイル時間の計測」をしてみました。

PC WSL1 WSL2
Core i7-6700K 4.0GHz (4C8T) 40s 29s
Ryzen 7 1800X 3.6GHz (8C16T) 26s 21s

・「WSL1」「WSL2」はビルド時間で単位は秒。値が小さい方が高速
・Windows 10 + WSL (Ubuntu 18.04LTS) clang 8.0 での比較

WSL1 にくらべて WSL2 の方がだいぶ速くなっています。Android の UserLAnd と Termux の関係に似ているかもしれません。

さらに直接 install した Linux と比較してみました。

PC clang WSL1 WSL2 Linux
Core i7-6700K (4C8T) clang 8 40s 29s 27s
Core i7-6700K (4C8T) clang 6 40s 28s 26s

・「WSL1」「WSL2」「Linux」はビルド時間で単位は秒。値が小さい方が高速
・WSL = Windows 10 + WSL (SATA SSD: MX500 500GB)
・Linux = Ubuntu 18.04LTS (SATA SSD: TS256GMTS400)

WSL2 のビルド時間が Linux を直接 install した場合に近くなっています。

なおテストは同じ PC を使っていますが、Windows と Linux で使用している SSD が違うので同一条件になっていません。速度差は OS の違いではなく SSD 性能差の可能性もあります。

以下スマートフォン他との比較

Device OS clang ビルド時間
Ryzen 9 3950X 3.5GHz WSL1 8 10s
Ryzen 7 1800X 3.6GHz WSL2 8 21s
Ryzen 7 1800X 3.6GHz WSL1 8 26s
Core i7-6700K 4.0GHz Ubuntu 18.04 8 27s
Core i7-6700K 4.0GHz WSL2 8 29s
Core i7-4790K 4.0GHz Ubuntu 18.04 8 31s
Google Pixel 3 Snapdragon 845 Termux 8 35s
Core i7-6700K 4.0GHz WSL1 8 40s
Essential Phone PH-1 Snapdragon 835 Termux 8 40s
Google Pixel 3 Snapdragon 845 UserLAnd 8 51s
Essential Phone PH-1 Snapdragon 835 UserLAnd 8 62s
A10-7870K 3.9GHz Ubuntu 18.04 8 69s
Huawei P30 Lite Kirin 710 Termux 9 71s
Huawei P30 Lite Kirin 710 UserLAnd 8 85s
Jetson Nano Tegra X1 Ubuntu 18.04 8 118s
ZenFone AR ZS571KL Snapdragon 821 Termux 8 125s
Raspberry Pi 4 BCM2711 (arm64) Ubuntu 19.10 8 146s
Nexus 5X Snapdragon 808 Termux 8 178s
Raspberry Pi 4 BCM2711 (armv7l) Raspbian 10 8 203s
Raspberry Pi 3 BCM2837 (arm64) Ubuntu 18.04 8 340s

・「ビルド時間」の単位は秒、値が小さい方が高速
・clang = clang の Version (コンパイラの Version によって速度が変わるので注意)

I/O 速度を見ると WSL2 だけで十分な気もしますが、WSL1 の方が手軽で便利な点もあります。例えばネットワークの場合 WSL2 には内部のローカルな IP Address が割り振られます。サーバーを立てて外部の PC からアクセスしたい場合、WSL1 は簡単に実現できますが WSL2 では外から直接見えなくなります。VirtualBox などの仮想マシンと同じで、port forwarding の設定が必要になるようです。

WSL1 同様、WSL2 からも Windows の exe を呼び出すことができました。つまり WSL 上で ssh server を起動しておき、Linux 側の ssh 経由で cmd.exe を実行することもできます。この辺が VirtualBox のような閉じた仮想マシンと異なるところです。

しばらくは使い分けながら併用してみたいと思います。

関連ページ
Compile Benchmark

関連エントリ
4倍速い Ryzen 9 3950X の UE4 コンパイル速度
Jetson Nano / Clang の Version とコンパイル速度の比較
Snapdragon 835 と 845 のコンパイル時間の比較&浮動小数点演算能力
Snapdragon 845 の浮動小数点演算速度
ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd
ARM CPU 上の開発環境とコンパイル時間の比較
AMD CPU Ryzen とコンパイル時間の比較 (2)
AMD CPU Ryzen とコンパイル時間の比較
ARM CPU の浮動小数点演算能力まとめ

Jetson Nano / Clang の Version とコンパイル速度の比較

Jetson Nano Developer Kit を入手しました。Jetson Nano は Tegra X1 を搭載した SBC です。各種インターフェースを搭載した I/O ボードがセットになっています。そのため見た目は Raspberry Pi のような印象を受けますが、上に載ってる Compute Module のような小さいカードの方が本体です。

NVIDIA Jetson Nano

Nano は Jetson シリーズの中でも低価格で入手しやすくなっています。その代わり搭載されている Tegra X1 のアーキテクチャは少々古い世代のもので、GPU も GeForce でいえば 900 シリーズの Maxwell に相当します。また同じ X1 を使用している Jetson TX1 や SHILED TV (Android TV) よりも Shader Core 数が半減しています。公式ページに書かれている 472 GFLOPS は fp32 ではなく AI 向け fp16 のものです。

Tegra X1 Device CPU clock Shader GPU clock GPU fp32 GPU fp16
TX1/SHIELD TV A57 1.9GHz 256 sp 1000 MHz 512 GFLOPS 1024 GFLOPS
Jetson Nano A57 1.4GHz 128 sp 922 MHz 236 GFLOPS 472 GFLOPS

Tegra X1 には Cortex-A53 含めて CPU が 8 core 搭載されているのですが、過去の Tegra 同様省電力 core が見えない仕様のようです。8 core 同時稼働ができないため、実質 4 core 相当となっています。

Nano にはパフォーマンス重視の big core A57 が載っているので、同じ Quad core でも Little core のみだった Raspberry Pi 2/3 より CPU 性能は高くなります。ただし最近リリースされた Raspberry Pi 4 では big core (Coretex-A72) に置き換わったため、この点での優位性はなくなりました。

Device CPU core clock IA RAM 価格
Raspberry Pi 2(旧) Cortex-A7 Little 0.9 GHz ARMv7A 1GB $35
Raspberry Pi 2(新) Cortex-A53 Little 0.9 GHz ARMv8.0A 1GB $35
Raspberry Pi 3 Cortex-A53 Little 1.2 GHz ARMv8.0A 1GB $35
Raspberry Pi 3+ Cortex-A53 Little 1.4 GHz ARMv8.0A 1GB $35
Raspberry Pi 4 Cortex-A72 big 1.5 GHz ARMv8.0A 1-4GB $35-55
Jetson Nano DevKit Cortex-A57 big 1.4 GHz ARMv8.0A 4GB $99

似たようなボードのスペックをいくつかまとめてみました。より詳しい表は wiki の方に載せています。メモリ速度に結構違いがあります。

NPU/SBC

Device SoC CPU core clock RAM MEM B/W TPU/GPU
Jetson Nano Tegra X1 A57 x 4 1.4GHz 4GB 25.6GB/s 472 GF@fp16
Coral Dev Board NXPi.MX 8M A53 x 4 1.5GHz 1GB 12.8GB/s 4 TOPS@int
Raspberry Pi 4 BCM2711 A73 x 4 1.5GHz 4GB 9.6GB/s
Raspberry Pi 3+ BCM2837B0 A53 x 4 1.4GHz 1GB 3.6GB/s 28.8 GF@fp32
Dragonboard 410c Snapdragon410 A53 x 4 1.2GHz 1GB 4.2GB/s

OS は Ubuntu Desktop が用意されています。ARM で最初から GPU が有効なものはなかなか触れないので貴重です。OpenGL ES だけでなく OpenGL が使えますし、Vulkan、CUDA にも対応してます。

いつものように ARM 環境でコンパイル速度を調べようとしたのですが、clang の Version によって速度に違いがあることに気が付きました。あらためてデータを取り直してみました。clang の Version が上がるほどビルド速度が遅くなっているようです。

Device v3.5 v3.9 v4.0 v5.0 v6.0 v7.0 v8.0
PC Core i7-4790K 30 33 31
Pixel 3 SDM845 35
Mac i7-3615QM 42
PC A10-7870K 64 69 70 74 79 69
Mac i5-3210M 98
ZenFone3 ZC553KL 97
Chromebook C101PA 96 95
Jetson Nano 108 113 113 118 125 121
PC Celeron J1900 174 189 192 202 216 207
Chromebook 2955U 191 207 216 225 248 231
PC x7-Z8700 274 304 297
Raspberry Pi 3B 148 194 331 351
Raspberry Pi 2B 314 395 752 820

・横軸は clang の Version。数値は秒で値が小さい方が高速。

Windows 上の WSL だと素の Linux より遅くなるため上の表からは除いてあります。wiki の方には WSL 含めたデータを載せています。ストレージ速度など、必ずしも条件が一定ではないので予めご了承ください。

Compile Benchmark

コンパイル時間は core 数や Thread 数が多い方が速くなります。Nano は 8 thread のハイエンドスマートフォンには敵いませんが、RAM も多いし big core なので Raspberry Pi 2/3 より数倍速く、Celeron (Atom) 搭載 PC と比べても半分近い時間でコンパイルが完了しています。

TensorFlow も普通に CUDA で動きます。PC と同じコードがそのまま走るので、メモリ容量の制限はあるものの学習も可能です。TensorFlow をソースからビルドしなおすことで、Python だけでなく C言語 API も使うことができました。

関連ページ
Compile Benchmark
Jetson Nano

関連エントリ
Snapdragon 835 と 845 のコンパイル時間の比較&浮動小数点演算能力
Snapdragon 845 の浮動小数点演算速度
ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd
ARM CPU 上の開発環境とコンパイル時間の比較
AMD CPU Ryzen とコンパイル時間の比較 (2)
AMD CPU Ryzen とコンパイル時間の比較
ARM CPU の浮動小数点演算能力まとめ