Raspberry Pi는 하드웨어 부동 소수점을 지원합니까?


34

ARM 장치에는 하드 플로트 코 프로세서가 거의 없기 때문에 ARM 장치에서 소프트 플로트 알고리즘을 사용하는 것이 가장 좋다는 기사가 있습니다. 그렇다면 RPi는 하드 플로트를 지원합니까? 그렇다면 소프트 플로트가 더 빠릅니까? (맞아야합니까?)

답변:


30

FAQ에 따르면 Raspberry Pi는 부동 소수점을 지원하는 ARM 11 칩을 사용합니다.

어떤 SoC를 사용하고 있습니까?

SoC는 Broadcom BCM2835입니다. 여기에는 700Mhz에서 실행되는 부동 소수점이있는 ARM1176JZFS와 Videocore 4 GPU가 포함됩니다. GPU는 40MBits / s에서 H.264를 사용하여 BluRay 품질 재생이 가능합니다. 제공된 OpenGL ES2.0 및 OpenVG 라이브러리를 사용하여 빠른 3D 코어에 액세스 할 수 있습니다.

이 기능은 소프트 플로트보다 빠릅니다 (그렇지 않은 경우 놀라 울 것입니다!). 하드웨어가 지원되지 않는 시스템에서는 부동 소수점 처리 범위를 특별히 필요로하지 않는 경우 고정 소수점 처리를 활용하는 것이 좋습니다. 포인트 정밀도.


9

하드웨어 부동 소수점 지원이 있습니다. 내가 아는 한, 이것은 RPi (아직)에 제공된 기본 데비안 배포판에서 사용할 수 없습니다. 나는 아치에 대해 너무 확신하지 못하지만, 그들이 지원을하지 않으면 곧 그것이 될 것이라고 상상합니다.

내 RPi에 젠투가 있으므로 기본적으로 하드 플로트 지원으로 컴파일 된 모든 것이 있습니다. 그것은 빠르다 :)

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

(물론, discc와 크로스 컴파일은 광범위하게 사용되었습니다!)


Xiol, Gentoo 시스템에서 Unixbench-Benchmark를 수행하고 결과를 게시 할 수 있습니까? soft-fpu와 hard-fpu의 성능 차이가 상당히 크기 때문에 비교에 흥미로울 것입니다. 에 따르면 copypaste.at/2012/06/raspberry-pi-und-debian-7-wheezy-soft.html (죄송합니다, 독일어)는 숫돌 벤치 마크는 10 배에 대한 빠른 Raspian (/ HardFPU w ARMHF 아치)와 RPI 대입니다 권장 데비안 (ARMEL w / SoftFPU). GenToo의 경우 더 커야한다고 생각합니다.

6

그렇다면 RPi는 하드 플로트를 지원합니까?

예, 구체적으로 (원래 Pi에서) VFPv2.

그렇다면 소프트 플로트가 더 빠릅니까?

ARM 장치에는 하드 플로트 코 프로세서가 거의 없기 때문에 ARM 장치에서 소프트 플로트 알고리즘을 사용하는 것이 가장 좋다는 기사가 있습니다.

2007 년에는 부동 소수점이 혼란 스러웠으며 많은 칩에 FPU가 전혀 없었습니다. 종종 서로 다르고 호환되지 않는 여러 가지 중 하나를 가진 사람들이있었습니다. 최악의 데비안 팔 (당시 주요 리눅스 리눅스 배포판 중 하나)은 FPA라는 FPU를 위해 만들어진 역사적 이유 때문에 거의 칩이 거의 없으며 부동 소수점에 대한 커널 에뮬레이션에 의존했습니다 (소프트웨어 부동 소수점이 느리고 커널 에뮬레이트 된 부동 소수점) 느리게). 나는 다른 배포판의 상황이 비슷하다고 생각하지만 긍정적이지 않습니다.

당시 엉망인 상황에서 EABI의 기본 (소프트 플로트) 버전을 사용하여 EABI 포트를 사용하는 것이 최선의 선택이라고 결정했습니다. 이 ABI는 코드가 기본 ABI를 사용하면서 선택적으로 FPU를 사용할 수 있도록 설계되었습니다. 당시 아이디어는 소프트웨어 부동 소수점을 사용하여 배포판의 핵심을 구축 한 다음 많이 사용되는 부동 소수점을 사용하는 특정 코드를 하드웨어 부동 소수점으로 만들 수 있지만 여전히 기준 (소프트 부동) ABI를 사용할 수 있다는 것입니다. 이 포트는 데비안에서는 "armel"로 알려져 있습니다.

그러나 "하드웨어 부동 소수점을 사용하여 빌드 된 특정 패키지"비트는 실제로 작동하지 않았습니다. 실제로는 이런 일을하는 데 방해가되는 패키지가 거의 없으며 정수와 부동 소수점 레지스터 사이에서 값을 섞는 오버 헤드도있었습니다.

2011 년으로 넘어 가고 상황이 상당히 바뀌었다. Arm은 VFP를 적극적으로 추진해 왔으며 대다수의 "애플리케이션 프로세서"(휴대폰과 비슷한 제품)가 VFP를 채택했습니다. 많은 주요 리눅스 배포판들 (최소한 데비안, 우분투 및 페도라, 그리고 나중에는 더 이상)은 하드웨어 부동 소수점과 하드 부동 ABI를 사용하여 포트를 선택했습니다. 불행히도 Pi의 경우이 배포판 (Pi가 출시 될 때까지 완료된)은 일반적으로 최소 하드웨어 요구 사항을 VFPv3_d16이있는 ARMv7로 설정하여 Pi에서 실행되지 않습니다.

따라서 Pi 팬은 하드웨어 부동 소수점 및 하드 부동 ABI를 사용하지만 pi에서 실행되는 컴파일러 설정으로 구축 된 pi 전용 배포판 변형 작업을 시작했습니다.


5

2012 년 9 월 18 일부터 Arch Linux ARM은 하드 플로트 지원도 제공합니다. 이 발표를 읽으십시오 :

오늘 우리는 Raspberry Pi 및 Via APC-IO에서 사용할 수있는 VFP 부동 소수점 장치를 지원하도록 구축 된 모든 패키지와 함께 새로운 armv6 하드 플로트 리포지토리를 공개합니다. armv5 soft-float 리포지토리와 새로운 armv6h 리포지토리 사이에 업그레이드 경로가 없으므로 Raspberry Pi의 새 설치 이미지도 릴리스했습니다. 이미지 링크는 기본 사이트의 Pi 설치 페이지에서 볼 수 있습니다. 이 이미지는 또한 sysvinit 및 initscript 대신 systemd 용으로 설정되므로 부팅 시간이 빨라지고 Arch에서 영구적으로 변경되는 변경 사항에 대해서는 향후 설치가 보장됩니다.

아치 리눅스 ARM 라즈베리 파이


4

그렇습니다. 다른 사람들이 말했듯이 라즈베리 파이는 하드 플로트 지원을 가지고 있습니다. 운영 체제 Raspbian을 확인하십시오 .

Raspbian은 데비안 Wheezy armhf의 비공식 포트로, 컴파일 설정이 조정되어 Raspberry Pi에서 실행되는 최적화 된 "하드 플로트"코드를 생성합니다. 이는 부동 소수점 산술 연산을 많이 사용하는 응용 프로그램에 훨씬 빠른 성능을 제공해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.