Raspi Zero 2 W の32bit OS vs 64bit OS 性能 | たけおか ぼちぼち日記

たけおか ぼちぼち日記

思いついたらメモ

Raspberry Pi Zero 2 W をやっと入手した。
(Zero 2 とか聞くと、太陽電池で動く (キカイダー)「ゼロ・ワン」兄さんが、後から出そうな気がする 昭和世代)

OSは64bit, 32bitとも、現状 最新の
"Linux xxxx 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux"

・メモリについて

メモリは、512 MBytesで、寂しい。
メモリが少ないので、32bit OSで使ったほうが、メモリは有効に使えるだろう。
下記のように、32bitOSは、少しはメモリ消費が少ない。
-- 起動直後

32bit$ free
total used free shared buff/cache available
Mem: 436980 52576 292200 968 92204 332684
Swap: 102396 0 102396

--
64bit$ free
total used free shared buff/cache available
Mem: 429400 74000 250340 924 105060 300872
Swap: 102396 0 102396


私の持論として…
アプリケーションの整数が32bit だとしても、64bit 環境だとデータのポインタは64bitとなる。
つまり、ポインタの配列の大きなものを作ると、かなりな無駄になる。
(ちなみに、私はLispが好きなので、ポインタ中心の生活をしている。)
基本的には、実メモリが4GBytes以内の機械では、32bit 環境がいいだろうと思う。

だがっ…
ARMは 32bit と64bit では、命令が違いすぎる。
その2者の性能の違いが、私、気になりますっ。(古来の言い回し)

・演算性能

dhrystone, Whetstone などをやってみる。(どれも5回試行の平均値)















64 bit32 bit 64bit性能/32bit性能
Dhrystone
(Dhrystones per Second)
cc -I. -O4 -DREG=register -DHZ=60
3,154,043 1,887,544 1.67
Whetstone Double
(Whetstone KIPS)
cc -funsafe-math-optimizations -O4 whetd.c -o whetd-c -lm
4,505,928 3,597,883 1.25
Whetstone Single
(Whetstone KIPS)
4,202,898
cc -funsafe-math-optimizations -O4 whets.c -o whets-c -lm
3,425,286
cc -mfpu=neon-vfpv4 -funsafe-math-optimizations -O4 whets.c -lm -o whet-neon
1.23


なんとっ!!!!
64bit が、整数では 1.7倍ぐらい速いではないかっ。
これは、64bit で使わなければ…


32bit 環境でも、浮動小数点演算は64bit 演算の方が速いのが、2022年と言えようか…