Чи має Raspberry Pi апаратну підтримку з плаваючою точкою?


34

Є кілька статей навколо, які говорять про те, що найкраще використовувати алгоритми м'якого поплавця на пристроях ARM, оскільки дуже мало мікросхем ARM мають копроцесори з твердим плаванням. Отже, чи має RPi жорстку підтримку поплавця? Якщо так, то чи швидше це м'яке плавання? (Це має бути, правда?)

Відповіді:


30

Відповідно до FAQs , Raspberry Pi використовує чіп ARM 11 з підтримкою плаваючої точки:

Який SoC ви використовуєте?

SoC є Broadcom BCM2835. Він містить ARM1176JZFS з плаваючою точкою, що працює на частоті 700 МГц, і відеокорректор 4 Videocore. Графічний процесор здатний відтворювати якість BluRay, використовуючи H.264 зі швидкістю 40 Мбіт / с. Він має швидке тривимірне ядро, доступ до якого здійснюється за допомогою наданих бібліотек OpenGL ES2.0 та OpenVG.

Це буде швидше, ніж м'який поплавок (якщо це не так, я буду вражений!), Хоча для систем без апаратної підтримки часто краще використовувати ідею обробки фіксованої точки, якщо вам спеціально не потрібен діапазон, пропонований плаваючим точкова точність.


9

Він має апаратну підтримку з плаваючою комою. Наскільки мені відомо, це недоступно в дистрибутиві Debian за замовчуванням, передбаченому для RPi (поки що). Я не надто впевнений у Arch, хоча якщо вони не матимуть підтримки, то, думаю, це буде незабаром.

У мене є Gentoo на моєму RPI, тому я все за допомогою стандартного забезпечення підтримує жорсткий поплавок. Це швидко :)

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

(звичайно, distcc і крос-компіляція широко використовуються!)


Xiol, чи можна зробити Unixbench-Benchmark у своїй системі Gentoo та опублікувати результати? Це, безумовно, було б цікаво для порівняння, оскільки різниця у продуктивності між soft-fpu та hard-fpu досить велика. Відповідно до copypaste.at/2012/06/raspberry-pi-und-debian-7-wheezy-soft.html (вибачте, німецька мова) орієнтир Whetstone приблизно в 10 разів швидше, ніж Raspian (арка ARMHF w / HardFPU) проти RPI рекомендований Debian (ARMEL w / SoftFPU). Я думаю, що для GenToo він повинен бути ще більшим.

6

Отже, чи має RPi жорстку підтримку поплавця?

Так, конкретно (на оригіналі Pi) VFPv2.

Якщо так, то чи швидше це м'яке плавання?

Так

Є кілька статей навколо, які говорять про те, що найкраще використовувати алгоритми м'якого поплавця на пристроях ARM, оскільки дуже мало мікросхем ARM мають копроцесори з твердим плаванням.

Ще в 2007 році плаваюча точка на руці була безладом, багато фішок взагалі не мали FPU. Ті, хто часто мав один із кількох різних і несумісних. Гірша рука Debian (один з головних дистрибутивів Linux на той час) була з історичних причин побудована для FPU під назвою FPA, у якого дуже мало чіпів було, і в основному покладалося на емуляцію ядра для плаваючої точки (плаваюча точка програмного забезпечення повільна, ядро ​​імітується плаваючою точкою повільніше). Я думаю, що ситуація в інших дистрибутивах була схожа, але я не позитивний з цього приводу.

З огляду на безладдя на той момент було прийнято рішення про те, що найкращим варіантом було зробити порт EABI, використовуючи базову версію EABI (soft-float). Цей ABI був розроблений таким чином, що код міг використовувати базовий ABI, при необхідності використовуючи FPU. В той час ідея полягала в тому, що ядро ​​дистрибутива буде побудовано за допомогою програмної плаваючої точки, а потім конкретний код, який із сильно використовуваною плаваючою точкою може бути побудований з апаратною плаваючою точкою, але все ще з використанням базової лінії (soft float) ABI. Цей порт був відомий у світі Дебіанів як «арсенал».

Однак біт "специфічних пакетів, побудованих за допомогою апаратної плаваючої точки" насправді не вийшов. На практиці декілька пакетів потрудилися зробити таке, а також було накладено великі перетасовки значень між цілими і регістрами з плаваючою точкою.

Швидкий перехід до 2011 року і ситуація суттєво змінилася. Arm агресивно підштовхує VFP, і переважна більшість "процесорів програм" (такий, який ви знайдете в мобільних телефонах і подібних) прийняли його. Ряд основних Linux-дистрибутивів (принаймні Debian, Ubuntu та Fedora спочатку, пізніше) вирішили робити порти, використовуючи апаратну плаваючу точку та жорсткий плаваючий ABI. На жаль, для Pi ці дистрибутиви (які досягали завершення до моменту виходу Pi) зазвичай встановлювали свої мінімальні вимоги до обладнання як ARMv7 з VFPv3_d16, щоб вони не працювали на Pi.

Тож шанувальники Pi почали працювати над пі-специфічними варіантами дистрибутива, які використовували апаратну плаваючу точку та жорсткий плаваючий ABI, але були побудовані з налаштуваннями компілятора, які працюватимуть на pi.


5

З 18 вересня 2012 року Arch Linux ARM також підтримує жорсткий плав. Прочитайте це оголошення:

Сьогодні ми відкриваємо для громадськості нові сховища із жорстким плаванням armv6, усі пакети створені для підтримки блоку VFP з плаваючою комою, доступного в Raspberry Pi та Via APC-IO. Оскільки між репозиторієм softv-float armv5 та новим сховищем armv6h немає оновленого шляху, ми також випустили нове інсталяційне зображення для Raspberry Pi. Посилання на зображення доступне на сторінці встановлення Pi на нашому головному сайті. Це зображення також налаштоване для systemd замість sysvinit та initscripts, тому час завантаження проходить швидше, а інсталяція захищена в майбутньому для змін, які з часом стають постійними в Arch.

Arch Linux ARM Raspberry Pi


4

Так, як інші заявили, що Raspberry Pi має підтримку жорсткого поплавця. Ознайомтеся з операційною системою Raspbian .

Raspbian - це неофіційний порт Arhf Debian Wheezy з налаштуваннями компіляції, налаштованими на створення оптимізованого коду "hard float", який працюватиме на Raspberry Pi. Це повинно забезпечити значно більшу продуктивність для додатків, які активно використовують арифметичні операції з плаваючою комою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.