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

#1 楼

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


您正在使用什么SoC?

SoC是Broadcom BCM2835 。它包含一个ARM1176JZFS,它具有
浮点,运行速度为700Mhz,以及一个Videocore 4 GPU。 GPU能够以40MBits / s的速度使用H.264进行BluRay品质的回放。它具有使用随附的OpenGL ES2.0和OpenVG库访问的
快速3D内核。 t,我会很惊讶!),尽管在没有硬件支持的系统上,如果您不特别需要浮点精度提供的范围,通常最好使用定点处理。

#2 楼

它确实具有硬件浮点支持。据我所知,在为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,它必须更大。

–user327
2012年6月22日19:09

#3 楼


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


是的,特别是(在原始Pi上)VFPv2。那么,使用软浮点数更快吗?


是的


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


早在2007年,arm上的浮点就是一片混乱,许多芯片根本没有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的发行版变体,这些变体使用了硬件浮点和硬浮点ABI,但使用可在pi上运行的编译器设置构建。

#4 楼

是的,正如其他人所说,Raspberry Pi确实具有硬浮点支持。查看操作系统Raspbian。Raspbian是Debian Wheezy armhf的非官方端口,其编译设置已调整为生成可在Raspberry Pi上运行的优化“硬浮点”代码。对于大量使用浮点算术运算的应用程序,这应该提供显着更快的性能。


#5 楼

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


今天,我们向
公众开放新的armv6硬浮动存储库,其中所有软件包都支持VFP浮点单元。 >在Raspberry Pi和通过APC-IO中可用。由于armv5软浮动存储库与新的
armv6h存储库之间没有
升级路径,因此我们还发布了
Raspberry Pi的新安装映像。在我们主站点的Pi的
安装页面上,可以找到该图像的链接。此映像也已为systemd而不是sysvinit和initscripts进行了设置,因此引导时间
更快,并且安装可以适应将来的更改,这些更改最终会在Arch中永久存在。
/>

Arch Linux ARM Raspberry Pi