この記事について
過去記事でRasPi 5でSSD+NPUというロマン構成を構築したことに触れました。実はRasPi 5ではPCIe Gen3に対応しているものの、デフォルトではGen2動作をすると耳にしました。ファームウェアの設定を変更することで、PCIe Gen3動作が可能になると。。。そこで、実際にGen3を有効化し、SSDの読み書きを行う速度が向上するか実験してみました。
最初にデフォルト状態のスペックを確認
設定を行う前に、デフォルト状態のスペックを確認します。まずはlspciコマンドを用いて現在のSSDが接続されているPCIeインターフェースの常態を確認します。
$ sudo lspci -s 0000:04:00.0 -vv | grep -E 'LnkSta:'
LnkSta: Speed 5GT/s (downgraded), Width x1 (downgraded)
| 表示される速度 | 対応するPCIe世代 |
|---|---|
| 2.5GT/s | PCIe 1.0 (1.x) |
| 5GT/s | PCIe 2.0 |
| 8GT/s | PCIe 3.0 |
| 16GT/s | PCIe 4.0 |
| 32GT/s | PCIe 5.0 |
| 64GT/s | PCIe 6.0 |
この表を見る限り、PCIe Gen2で動作しているというのは正しそうです。
ベンチマーク測定
PiBenchmarksというベンチマークを用いて測定します。使い方はとても簡単です。
sudo curl https://raw.githubusercontent.com/TheRemote/PiBenchmarks/master/Storage.sh | sudo bash
- 参考情報
実際の測定結果は以下です。
Category Test Result
HDParm Disk Read 414.06 MB/sec
HDParm Cached Disk Read 400.28 MB/sec
DD Disk Write 232 MB/s
FIO 4k random read 106666 IOPS (426666 KB/s)
FIO 4k random write 46972 IOPS (187889 KB/s)
IOZone 4k read 149935 KB/s
IOZone 4k write 109247 KB/s
IOZone 4k random read 65114 KB/s
IOZone 4k random write 135558 KB/s
Score: 30091
PCIe Gen3を有効化
PCIe Gen3を有効化します。ファームウェアのconfigを書き換えます。設定を誤ると最悪起動しなくなるため、慎重に行います。
sudo vim /boot/firmware/config.txt
以下を追記します。
dtparam=pciex1
dtparam=pciex1_gen=3
追記が完了したら、再起動します。
sudo reboot
- 参考情報
再度スペックを確認
再起動後に再度スペックの確認を行います。まずはlspciコマンド。ここで8GT/sと表示されれば大成功です。ところが。。。
$ sudo lspci -s 0000:04:00.0 -vv | grep -E 'LnkSta:'
LnkSta: Speed 5GT/s (downgraded), Width x1 (downgraded)
変わっていない!?
では、PiBenchmarksはどうでしょうか?
Category Test Result
HDParm Disk Read 407.02 MB/sec
HDParm Cached Disk Read 410.15 MB/sec
DD Disk Write 229 MB/s
FIO 4k random read 106666 IOPS (426666 KB/s)
FIO 4k random write 47627 IOPS (190511 KB/s)
IOZone 4k read 151548 KB/s
IOZone 4k write 109386 KB/s
IOZone 4k random read 64901 KB/s
IOZone 4k random write 136667 KB/s
Score: 30246
誤差の範囲。。。全く性能が向上していません。。。原因を探った所、答えは単純明快でした。。。以下公式サイトの引用です。
デュアルNVMe & AI拡張: PCIe Gen 2 スイッチ搭載の2つの M.2 M-key スロット(2230/2242/2260/2280対応)で SSD や AI アクセラレータを使用可能。Hailo-8/8L に完全対応。
何とそもそもSSD+NPU拡張ボードがGen2までの対応でGen3に非対応です。よって、RasPi 5本体としてはGen3に対応していても、肝心の拡張カードはGen2対応なのでGen3の速度は逆立ちしても出ないと言うことになります。。。![]()
まとめ
今回折角ロマン構成が実現出来たのでついでにPCIe Gen3でSSD+NPUを動作させてみようと画策しましたが、見事失敗
しました。Pironman5側で対応されて将来的にはGen3で利用出来る様になって欲しいです。Pironman6で対応というのも悪くは無いですが、どうせなら拡張カードだけ対応版が出てソフトウェアアップデートと部品交換だけで対応というのが筆者としては理想です。