Raspberry Pi是否具有硬件浮点支持?


34

周围有几篇文章说最好在ARM设备上使用软浮点算法,因为很少有ARM芯片具有硬浮点协处理器。那么,RPi是否具有硬浮动支持?如果是这样,那么软浮动会更快吗?(应该是吧?)

Answers:


30

根据常见问题解答,Raspberry Pi使用具有浮点支持的ARM 11芯片:

您正在使用什么SoC?

SoC是Broadcom BCM2835。它包含一个带浮点的ARM1176JZFS,运行速度为700Mhz,以及一个Videocore 4 GPU。GPU能够以40MBits / s的速度使用H.264进行蓝光质量的回放。它具有使用随附的OpenGL ES2.0和OpenVG库访问的快速3D核心。

这将比软浮动更快(如果不是,我会很惊讶!),但是在没有硬件支持的系统上,如果您不特别需要浮动提供的范围,通常最好使用定点处理点精度。


9

它确实具有硬件浮点支持。据我所知,在为RPi提供的默认Debian发行版中,这还不可用。我对Arch不太确定,尽管如果他们没有支持,我想它将很快得到支持。

我在RPi上安装了Gentoo,因此默认情况下,我使用硬浮点支持来编译所有内容。它很快:)

CFLAGS="-O2 -pipe -mcpu=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard"
CXXFLAGS="${CFLAGS}"
CHOST="armv6j-hardfloat-linux-gnueabi"

(当然,distcc和交叉编译已广泛使用!)


Xiol,您可以在Gentoo系统上执行Unixbench-Benchmark并发布结果吗?比较起来肯定会很有趣,因为soft-fpu和hard-fpu之间的性能差异非常大。根据copypaste.at/2012/06/raspberry-pi-und-debian-7-wheezy-soft.html(抱歉,德语),Raspian(ARMHF arch w / HardFPU)的磨刀石基准比RPI快约10倍推荐Debian(ARMEL w / SoftFPU)。我想对于GenToo,它必须更大。

6

那么,RPi是否具有硬浮动支持?

是的,特别是(在原始Pi上)VFPv2。

如果是这样,那么软浮动会更快吗?

周围有几篇文章说最好在ARM设备上使用软浮点算法,因为很少有ARM芯片具有硬浮点协处理器。

早在2007年,浮点运算就是一片混乱,许多芯片根本没有FPU。那些确实做到了的人通常拥有几种不同且不兼容的人之一。更糟糕的Debian分支(当时是主要的Linux发行版之一)是出于历史原因而构建的FPU,称为FPA,该芯片几乎没有芯片,并且主要依靠内核仿真来进行浮点运算(软件浮点运算很慢,内核仿真浮点运算)较慢)。我认为其他发行版中的情况类似,但我对此并不乐观。

考虑到当时的混乱状况,人们决定最好的选择是使用EABI的基准(软浮动)版本进行EABI端口。该ABI的设计方式使得代码可以使用基线ABI,同时可以选择使用FPU。当时的想法是,发行版的核心将使用软件浮点构建,然后可以使用硬件浮点构建heavilly使用的浮点的特定代码,但仍使用基线(软浮点)ABI。这个端口在Debian世界中被称为“ armel”。

但是,“使用硬件浮点构建的特定程序包”位并没有真正解决。实际上,很少有软件包会费心去做这样的事情,而且整型和浮点寄存器之间的值改组也有开销。

快进到2011年,情况发生了很大变化。Arm一直在积极推动VFP,并且绝大多数“应用处理器”(在移动电话和类似手机中都可以找到)采用了VFP。许多主要的Linux发行版(最初至少是Debian,Ubuntu和Fedora,后来更多)选择使用硬件浮点和硬浮点ABI进行端口移植。不幸的是,对于这些Pi,这些发行版(在发布Pi时就已经达到了完全竞争)通常将其最低硬件要求设置为带有VFPv3_d16的ARMv7,因此它们无法在Pi上运行。

因此,Pi迷开始研究特定于pi的发行版变体,这些变体使用了硬件浮点和硬浮点ABI,但使用在pi上运行的编译器设置来构建。


5

自2012年9月18日起,Arch Linux ARM还提供了硬浮动支持。阅读此公告:

今天,我们将向公众开放新的armv6硬浮动存储库,其中包含为支持Raspberry Pi和Via APC-IO中的VFP浮点单元而构建的所有软件包。由于armv5软浮动存储库和新的armv6h存储库之间没有升级路径,因此我们还发布了Raspberry Pi的新安装映像。该映像的链接位于我们主站点上Pi的“安装”页面上。该映像也为systemd而不是sysvinit和initscripts设置,因此引导时间更快,并且安装对于将来的更改而言是永不过时的,这些更改最终会在Arch中永久存在。

Arch Linux ARM树莓派


4

是的,正如其他人所说,Raspberry Pi确实具有硬浮点支持。Raspbian操作系统。

Raspbian是Debian Wheezy armhf的非官方端口,其编译设置已调整为生成可在Raspberry Pi上运行的优化“硬浮点”代码。对于大量使用浮点算术运算的应用程序,这应该提供显着更快的性能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.