@パパリウス さん、プロフィールに手を入れてみました。
Pi4版を楽しみにお待ちしています。
気の早いお話かもしれませんが、搭載メモリは1GBモデルで十分でしょうか?
Raspberry Pi 4 Model B
@パパリウス さん、プロフィールに手を入れてみました。
Pi4版を楽しみにお待ちしています。
気の早いお話かもしれませんが、搭載メモリは1GBモデルで十分でしょうか?
@hiroget9 さん
Pi4版のメモリは1GBで十分です。
256MBあればsmpdの動作に支障はありません。
将来的に別の用途に転用する可能性があるなら、2GB(または4GB)を購入したほうがいいのかな、、、なんてことも思いますが、
armの勢いはすごいものがありますので、2年もたてば新アーキテクチャを搭載したRPi5(?)が同程度の値段で登場するでしょう。
必要なものを必要な時に買うのが正解ということでしょうかね。
Pi4のオシレータは54MHzに変更されているようです。
Pi4の起動ログ(dmesg)
[ 0.000006] sched_clock: 56 bits at 54MHz, resolution 18ns, wraps every 4398046511102ns
Pi3の起動ログ
[ 0.000003] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
Xenomai上でのタイミング制御は、従来は52ナノ秒の精度が限界でした。
RTDMドライバー内で特に重要な処理は200ナノ秒以下で終わるものが多く、特に52ナノ秒以内で終わるものについては性能評価が難しい状況でした。
Pi4では18ナノ秒の精度で制御できるようになりますので、これまで以上に細かなタイミング制御ができますし、性能評価も容易になります。
@パパリウス さん
PI4はオシレータのクロックも上がっているんですね。これで64bit化、さらにはセパレート化でNASやHUBからの影響も排除できれば相当に期待できそうですね。とても楽しみです。
ところで、今までのPI3用の電源で事足りるものなのか気になっているのですが、電流値って測定できますか?
@Pass さん
外部のオシレータをXenomaiに使えないものかと思案したこともありましたので、Pi4でオシレータの周波数がアップしたのはとても嬉しいです
Pi4の開発環境は、Pi3に使っていたDC-ARROWをそのまま使っていますが全く問題は生じていません。
まだ音出しには至っておりませんので、安心はできませんね(汗)
@パパリウス さん
pi3の電源開発の過程で波形を観測していて気付いたのですが、音声信号と電圧変動が連動していますね。実際に音出ししてみると何か違いがあるかもです。何か気になった点があればまた教えてください。
波形観測で改めて思ったのは、パパリウスさんがラズパイに対して行ってきた余計なデバイスの無効化やプロセスカットは、確実に音質改善に効いているという事ですね。改めて関心しました。
@パパリウス さん、もうそろそろPi4を購入しようかと考えています。
今、購入できるのはmade in UKかと思いますが、パパリウス さんが開発していらっしゃるPi4もmade in UKでしょうか?
ラズパイ4B(4GB)が入手できたのでMoOde6.3でテストをしてみました。使ったDACはES9038Q2Mですが特に変わったこともなく音出しが出来ました。音の良しあしは不問とします。
@hiroget9 さん
私が使用しているPi4は、「made in UK」です。
Pi4版の開発・試聴にはこれを使っていくつもりです。
本日、ようやく64bit版Xenomaiカーネルでの起動に成功しました
現状ではUSBに外付けSSDを接続するとハングアップするという問題があり、未解決です。
しばらくは試行錯誤を続けてみますが、解決しないとしてもPi4版の仕様と割り切って開発を進めようかと思います。
Pi4版は、LFS(Linux From Scratch)をベースに開発を進めています。
音質にかかわるソフトウェアはすべてソースからビルドしたいので、バイナリパッケージ主体のArch Linuxはアンマッチでした。
ソースからのビルドを主体とするGentoo Linuxは大変優れたパッケージ管理ソフトを備えており、Pi4版のベースとして有望でしたが、smpdでは独自にパッチをあてているソフトが多く、パッチやビルドスクリプトの管理が必要となります。
Gentoo未経験の私にはハードルが高く、ビルドプロセスを把握しきれないと判断しました。
BYTE UNIX Benchmarks (Version 5.1.3)でのベンチマーク結果を掲載します。
計測は1コアで行っています。
4コア並列で実行すれば、スコアは約4倍になります。
System Benchmarks Partial Index | BASELINE | RESULT | INDEX |
---|---|---|---|
Dhrystone 2 using register variables | 116700.0 | 29487284.0 | 2526.8 |
Double-Precision Whetstone | 55.0 | 1611.7 | 293.0 |
Execl Throughput | 43.0 | 828.2 | 192.6 |
Pipe Throughput | 12440.0 | 136666.7 | 109.9 |
Pipe-based Context Switching | 4000.0 | 20823.2 | 52.1 |
Process Creation | 126.0 | 1420.3 | 112.7 |
Shell Scripts (1 concurrent) | 42.4 | 733.3 | 172.9 |
System Call Overhead | 15000.0 | 126073.2 | 84.0 |
Pi2/Pi3/Pi4のスコア比較を掲載します。(全て1コアの計測結果です)
System Benchmarks Partial Index | Pi2 | Pi3 | Pi4 |
---|---|---|---|
Dhrystone 2 using register variables (整数演算性能) | 839.4 | 1146.5 | 2526.8 |
Double-Precision Whetstone (浮動小数点演算性能) | 78.1 | 134.2 | 293.0 |
Execl Throughput (プロセス生成性能) | 128.3 | 238.0 | 192.6 |
Pipe Throughput (パイプのスループット) | 179.3 | 295.0 | 109.9 |
Pipe-based Context Switching (パイプのコンテキストスイッチ性能) | 99.4 | 188.3 | 52.1 |
Process Creation (子プロセス生成性能) | 107.4 | 201.1 | 112.7 |
Shell Scripts (シェルスクリプト実行性能) | 171.4 | 382.2 | 172.9 |
System Call Overhead (システムコール性能) | 345.3 | 555.6 | 84.0 |
Pi4はあえてCPU周波数を低く抑えていますが、それでもPi3の2~3倍の性能を持っていることが分かります。
これは、メモリがLPDDR2からLPDDR4になり帯域が向上したことやCPUキャッシュの増強など、メモリ性能の向上によるものだと思います。
そして、メモリアクセス処理の高速化はレイテンシの向上(ひいては音質向上)に相関しますので、Pi4版の音質には大いに期待できるものと思います。
一方で、プロセス生成、パイプ、システムコール呼び出しなど、カーネルの機能については、smpd v0.9系の性能には遠く及びません。
現時点ではPi4版のカーネルはXenomaiパッチを適用しただけのノーマル仕様ですが、v0.6系で行ったようなカーネルソースの最適化を進めていけば、改善がみられるだろうと思います。
smpdのカーネルは、音楽再生時に取得したプロファイルデータを元にカーネルのソースをすべて点検し、ホットスポットとなっている1000ファイル以上のソースに手作業でパッチをあて高速化を図っています。
Raspberry Pi 4 Model Bで@パパリウスが発言 :
起動に成功
パパリウスさん、まずは起動の成功おめでとうございます!
また、開発の状況、方向性をお教えくださり、ありがとうございます。
近日中にPi 4を入手いたします。
@パパリウス さま
ディストリはLFSベースですか、イメージファイルが現時点より縮小化出来るかもしれませんね。
実は次の私のネタで考えていたのですが、パパリウスさまが使っている開発ベースのイメージと普通に音楽を聴くだけの方向けのイメージでは必要なパッケージ(ファイル容量)が異なっても良いのではと思っています。
(実機での開発は当然必要なため、開発機にはdevパッケージやコンパイラは必要ですが、一般ユーザにとってはSDの空き容量があったほうが幸せかなと)
また、実行結果の詳細はちょっとわからない部分もありますが、やはりPi4はパワーがある分色々ソフトウェアで出来る範囲が増えたみたいですね。
ただ、消費電力と発熱が気になります(個人環境ではファンレス動作でCPU温度が40℃を下回っておりますので)。
正直今回の書込を見るまでは「環境を変えるためには出費が嵩みそうだから、様子見かなぁ」と勝手に思っていましたが、
ベータ版がリリースされる頃には手を出してしまいそうな予感がしてきました(汗
Raspberry Pi 4 Model Bで@パパリウスが発言 :
Gentoo Linux
パパリウス様 ラズパイ4BのSMPD開発状況報告有難うございます。現状のラスパイ3B 版でも最高の音が聴けているのに更に向上の余地がありそうで非常に楽しみにしています。色々なDACやDDCを持っているので検証に役立てたいと思っています。困難な開発だと思いますが頑張ってください。
パパリウスさん、早速Pi 4を手配しました。
明日、届く予定です。
動作確認など微力ながらお力添えさせていただけたらと思います。
現在、音出しに向けてドライバの移植作業を行っています。
rtalsa/xsinkについては32bit用のCPU命令を使ってチューニングしている箇所を汎用的なコードに戻し、ビルドが通ることが確認できました。
正常動作にはまだまだ程遠く、PCMデータを流し込むと即座にドライバがハングアップするような状態で、一つ一つ原因調査しながら修正を続けています。
OS起動時にXenomaiカーネルの初期化が行われますが、どうも正常に立ち上がってないように見えます。
RPi3起動ログ抜粋
smpd:~ $ dmesg |grep pipe
[ 0.000000] I-pipe, 19.200 MHz clocksource, wrap in 960767920505705 ms
[ 0.000000] clocksource: ipipe_tsc: mask: 0xffffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[ 0.000489] Interrupt pipeline (release #4)
[ 0.390892] clocksource: Switched to clocksource ipipe_tsc
[ 0.406325] I-pipe: head domain Xenomai registered.
Pi4起動ログ抜粋
root [ ~ ]# dmesg |grep pipe
[ 0.000256] Interrupt pipeline (release #4)
[ 0.528863] I-pipe: head domain Xenomai registered.
起動も不安定で、起動途中でネットワークがハングアップすることがよくあります。
64bitカーネルのRPi4対応はまだまだこれからという段階のようです。
64bitカーネルで2GB/4GBのメモリを認識できるようになったのも9月中旬の話で、ファームウェア(start4.elf, fixup4.dat)が対応するまではメモリを1GBに制限しないと正常に起動しない状態だったそうです。
このような発展途上の段階では、Xenomaiの正常動作など望むべくもないということでしょうか。。。
相変わらずrtalsa/xsinkドライバはうまく動いていません。
原因を追っていますが、根が深そうです。
ちょっと煮詰まってきましたので、Pi4版の作業は少し休憩しようかなと思います。
気分転換に、Pi3版の細かな不具合の修正に取り組もうかと思います。
@パパリウス さん、あまりご無理なさらずに取り組んでください。
現状でも心安らぐ音を聴かせていただいています。
パパリウスさんのお陰です。
@hiroget9 さん
ありがとうございます。
年初(v0.7系のころ?)に、64bit版カーネルの評価を行ったことがありました。
その時点では32bit版のほうが性能面で優れたコードが豊富に含まれており、64bitのメリットは限定的と感じました。
それから約1年たち、あらためて64bit版の構築を再開したわけですが、64bit版を取り巻く環境は格段に改善してきていることを感じました。
とは言え、Xenomaiカーネルの動作については不安要素が多く見えてきたのも事実です。
考え方を変えて、「Pi4専用の32bit版」を作るというのもありかなと思っています。
64bit版と比較することで問題の切り分けの手助けにもなりますし、うまく動いてくれるならそのまま開発を進めればいいですからね。
Pi3比で2〜3倍に高速化されたメモリ性能と、19.2MHzから54MHzにアップしたオシレータ、この2点だけでも、Pi4でsmpdを動かす強烈な動機付けとなっています。
少しペースを落として、方向性をゆっくりかんがえてみたいと思います。
パパリウスさん
入手したpi4の動作確認のためだけにvolumioを使ってみました。
あちらは、既にpi4対応済みですが、volumioの音はやはり好みではないです。(volumio使いの方、ごめんなさい)
一応、pi4の動作確認はできたので、またpi3+smpdに戻して聴きます。
音質を比較してみると、随分違います。そぎ落とされたシステムの方が音質面で理にかなっているということだと思います。
pi4は相当発熱するようで、シャットダウンしてから触るとかなり熱いです。これからの寒い時期は大丈夫でしょうけど、真夏は空冷ファンなどが必要になりそうですね。
@hiroget9 さん
ご意見ありがとうございます。
Pi4のスペックは、Pi3B/Pi3B+とはまるでモノが違います。
発熱やノイズ、消費電力など、落とし穴があるかもしれませんから、音楽再生に向いているかどうかは音出ししてみるまで判りません。
それでも、トコトン使いこなしてみたいという気持ちにさせてくれます。
数千円のボードだという先入観は不要です。
5〜6年前の自分が見たら、サーバ用Intel CPUのパワーを数分の1の消費電力で実現する未来のデバイスに映るでしょう
Pi4はブート用のコードを内蔵EEPROMに保持しています。
これを最新イメージに差し替えるとUSBの消費電力が数百ミリワット低減できるそうで、実際に3〜5℃程度の温度低下が見られました。
他にもGPUクロックを下げて運用するなど、Pi4の使いこなしにはいくつかポイントがありそうです。
拙宅ではPi4が40〜45℃前後、Pi3が35〜40℃で推移しています。
Pi3Bに比べて、5℃ぐらい熱いと考えるとよいですね。
(設定を何も弄らない初期状態では常に60℃以上あり、金属ケースは火傷しそうな熱さでした)
こんばんは、オーシャンです
ようやくP4に値段が付いた様です
https://raspberry-pi.ksyic.com/main/index
RAM4Gで、6600円税込
1Gと2Gはまだ未定の様です
思っていたより安い?ですかね