建议在RaspberryPi 4b 上使用 64位官方镜像

本文对比了树莓派4B在32位与64位系统下的性能表现,测试包括OpenMP素数计算、视频播放、sysbench基准测试及Octave浮点运算等。结果显示,64位系统在多项测试中展现出明显优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RaspberryPi 4 采用了Broadcom BCM2711处理器,是一块64位芯片。然而,目前官网的RaspberryPI OS 考虑到处理器兼容性,都是基于32位的Debain Arm架构。之前一直看到网上说,官方的64位测试版性能提升,但没有试过。此次下载了64位的官网镜像,进行了测试,不比不知道,一比吓一跳。特此记录。

1 树莓派4B介绍

树莓派4B 是一款采用了博通BCM2711处理器的Arm64卡片计算机。从一些资料来看,与其说它是一种单片机或者开发板,不如说是一个PC机。1

首先因为它的价格、能耗、接口、功能都更像PC机,另外就是它的硬件并不是完全开放的,不能说是一个友好的开发板。这个板子作为学习简单的Arm架构开发,控制一些基于串口、USB、GPIO的硬件设备,还是不错的选择。

在这里插入图片描述

项目参数
核心CPU:Broadcom BCM2711,1.5 GHz,64-bit,4核心,ARM Cortex-A72 架构,1MB shared L2 cache RAM:1、2、4 GB LPDDR4-3200 RAM (shared with GPU)
网络以太网:10/100/1000 Mbit/s 无线网:b/g/n/ac 双频 2.4/5 GHz 蓝牙:5.0
多媒体GPU:Broadcom VideoCore VI @ 500 MHz HDMI:micro-HDMI DSI:板载排线
外围设备17× GPIO plus the same specific functions, HAT, and an additional 4× UART, 4× SPI, and 4× I2C connectors

这个板子的性能已经显著与STM32单片机产生质的区别,接口特性也基本符合PC机的范畴。事实上,树莓派的本意也不是做单片机,而是做所有人都买得起的计算机,普及不发达地区的计算机教育。因此,它的大量驱动也是独一份,人家压根没有想到给第三方厂家复刻。

2 64位系统尝试

树莓派官方系统是RaspberryPi OS,一款在Debain上深度定制的操作系统。为了兼容各代硬件,尽管4代已经高配到8GB RAM,官方仍旧没有推出64位的发行版。目前,64位的发行版只推出了 Beta,因为仍旧有以下问题没有解决:

  • 视频加速驱动,Chrome和VLC只能软件播放。(经测试,区别不大)
  • 没有Wolfram Mathematica 软件(这个很要命)。2

不过,随着官方开发团队的不断努力,目前VLC已经释出,且Chrome的性能和32位上也没有大的差异。
从网址https://downloads.raspberrypi.org/raspios_arm64/images/下载最新镜像,写入SD卡后,即可尝试该系统。

笔者选取的是V30的256GB高速SD卡,8G顶配版本,附带铝合金被动散热。

2.1 OpenMP素数快速求取,15倍

我们使用笔者写的OpenMP素数求取程序,分别在同一个配置、不同操作系统下运行,对比如下:

32位系统:

Batch 1048576 ,80214 primes, last Primer: 1114111 , 576613 / s
Batch 1053160 ,73684 primes, last Primer: 2167261 , 381935 / s
Batch 1103492 ,74527 primes, last Primer: 3270737 , 309095 / s
Batch 1134620 ,74723 primes, last Primer: 4405381 , 275835 / s
Batch 1157146 ,75096 primes, last Primer: 5562517 , 243509 / s
Batch 1174788 ,75119 primes, last Primer: 6737317 , 223804 / s
Batch 1189280 ,75257 primes, last Primer: 7926593 , 212956 / s
Batch 1201576 ,75247 primes, last Primer: 9128153 , 199646 / s

64位系统:

Batch 1048576 ,80214 primes, last Primer: 1114111 , 3755886 / s
Batch 1053160 ,73684 primes, last Primer: 2167261 , 3778342 / s
Batch 1103492 ,74527 primes, last Primer: 3270737 , 3590787 / s
Batch 1134620 ,74723 primes, last Primer: 4405381 , 3515944 / s
Batch 1157146 ,75096 primes, last Primer: 5562517 , 3331344 / s
Batch 1174788 ,75119 primes, last Primer: 6737317 , 3254026 / s
Batch 1189280 ,75257 primes, last Primer: 7926593 , 3138231 / s
Batch 1201576 ,75247 primes, last Primer: 9128153 , 3041471 / s

速度相差 15倍!

2.2 视频播放,几乎一制

1920x1080,CPU 20%-40%,两个操作系统基本没有差别。
在这里插入图片描述

Play

2.3 sysbench,6倍

需要注意,64位镜像暂时需要从源码编译sysbench.
32Bit:

pi@rbp4bgh:~ $ sysbench --test=cpu --cpu-max-prime=20000 run --num-threads=4
sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 4

Doing CPU performance benchmark

Threads started!
Done.

Maximum prime number checked in CPU test: 20000


Test execution summary:
    total time:                          63.2772s
    total number of events:              10000
    total time taken by event execution: 253.0857
    per-request statistics:
         min:                                 24.49ms
         avg:                                 25.31ms
         max:                                 73.81ms
         approx.  95 percentile:              26.10ms

Threads fairness:
    events (avg/stddev):           2500.0000/4.58
    execution time (avg/stddev):   63.2714/0.00


64bit:

sysbench cpu --cpu-max-prime=20000 run --threads=4
sysbench 1.1.0-5657d59 (using bundled LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 4
Initializing random number generator from current time


Prime numbers limit: 20000

Initializing worker threads...

Threads started!

CPU speed:
    events per second:  2244.41

Throughput:
    events/s (eps):                      2244.4124
    time elapsed:                        10.0017s
    total number of events:              22448

Latency (ms):
         min:                                    1.70
         avg:                                    1.78
         max:                                   21.47
         95th percentile:                        2.14
         sum:                                39980.16

Threads fairness:
    events (avg/stddev):           5612.0000/74.63
    execution time (avg/stddev):   9.9950/0.00

2.4 Octave 浮点矩阵求逆,2倍

32

a=rand(800,800);tic;p=pinv(a);toc;
Elapsed time is 28.9755 seconds.

64

 a=rand(800,800);tic;p=pinv(a);toc;
Elapsed time is 12.3227 seconds.

3 小结

由于笔者的2块SD卡容量不同,没有做性能比对。不过,从开机速度来看,64位比32位快了3倍多。建议有条件的小伙伴直接上64位的OS!


  1. http://bbs.eeworld.com.cn/thread-1110657-1-1.html ↩︎

  2. https://www.raspberrypi.org/forums/viewtopic.php?t=275370 ↩︎

树莓派4B ROS镜像是为树莓派4B开发的一种特定操作系统(Raspberry Pi 4B ROS Image),它包含了ROS(机器人操作系统)的所有必要组件和库,以便在树莓派上进行机器人相关的开发和项目。 ROS(机器人操作系统)是一个开源的、灵活的机器人软件平台,它提供了一系列工具、库和规范,用于构建机器人系统和应用。ROS支持多种编程语言,如C++和Python,并提供了一系列功能包,以支持机器人导航、感知、控制等任务。 树莓派4B ROS镜像树莓派的用户提供了一个方便且易用的环境,以便开展机器人相关的项目。借助这个镜像,用户可以在树莓派上运行ROS并访问ROS的各种功能和库。此外,该镜像还预先安装了一些常用的ROS功能包,如导航功能包、感知功能包等,以提供更多的开发选项和启动点。 树莓派4B ROS镜像的安装非常简单,只需下载镜像文件,并将其烧录到SD卡上,然后将SD卡插入树莓派即可。一旦完成安装,用户就可以开始使用ROS进行机器人相关的开发,并利用树莓派4B的性能和GPIO接口来实现物理控制和交互。 总结来说,树莓派4B ROS镜像提供了一个方便、易用的环境,使得在树莓派上进行机器人相关的开发变得更加便捷。它为用户提供了ROS的所有必要组件和库,并预先安装了一些常用的ROS功能包,以帮助用户快速开始开发机器人应用。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丁劲犇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值