Raspberry Pi có hỗ trợ Điểm nổi Phần cứng không?


34

Có một vài bài viết xung quanh nói rằng tốt nhất là sử dụng thuật toán float mềm trên các thiết bị ARM, bởi vì rất ít chip ARM có bộ đồng xử lý float cứng. Vì vậy, RPi có hỗ trợ phao cứng? Nếu vậy, nó nhanh hơn mà nổi mềm? (Nó nên như vậy, phải không?)

Câu trả lời:


30

Theo FAQ , Raspberry Pi sử dụng chip ARM 11 có hỗ trợ điểm nổi:

SoC bạn đang sử dụng cái gì?

SoC là một BCM2835 Broadcom. Nó chứa ARM1176JZFS, với điểm nổi, chạy ở tốc độ 700Mhz và GPU Videocore 4. GPU có khả năng phát lại chất lượng BluRay, sử dụng H.264 với tốc độ 40 MB / giây. Nó có lõi 3D nhanh được truy cập bằng thư viện OpenGL ES2.0 và OpenVG được cung cấp.

Việc này sẽ nhanh hơn phao mềm (nếu không, tôi sẽ ngạc nhiên!), Mặc dù trên các hệ thống không có phần cứng hỗ trợ, nên thường xuyên tận dụng xử lý điểm cố định nếu bạn không cần phạm vi nổi do cung cấp điểm chính xác.


9

Nó có hỗ trợ điểm nổi phần cứng. Theo như tôi biết thì điều này không có sẵn trong bản phân phối Debian mặc định được cung cấp cho RPi (chưa). Tôi không chắc lắm về Arch, mặc dù nếu họ không có hỗ trợ thì tôi tưởng tượng nó sẽ sớm ra mắt.

Tôi có Gentoo trên RPi của mình, vì vậy tôi có mọi thứ được biên dịch với hỗ trợ float cứng theo mặc định. Nhanh quá :)

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

(dĩ nhiên, distcc và biên dịch chéo được sử dụng rộng rãi!)


Xiol, bạn có thể thực hiện một Unixbench-Benchmark trên Hệ thống Gentoo của bạn và đăng kết quả không? Chắc chắn sẽ rất thú vị khi so sánh vì sự khác biệt về hiệu năng giữa fpu mềm và fpu cứng là khá lớn. Theo copypaste.at/2012/06/raspberry-pi-und-debian-7-wheezy-soft.html (xin lỗi, tiếng Đức), điểm chuẩn của đá mài nhanh hơn khoảng 10 lần với Raspian (ARMHF arch w / HardFPU) so với RPI đề xuất Debian (ARMEL w / SoftFPU). Tôi đoán cho GenToo nó phải lớn hơn nữa.

6

Vì vậy, RPi có hỗ trợ phao cứng?

Có, cụ thể (trên Pi gốc) VFPv2.

Nếu vậy, nó nhanh hơn mà nổi mềm?

Vâng

Có một vài bài viết xung quanh nói rằng tốt nhất là sử dụng thuật toán float mềm trên các thiết bị ARM, bởi vì rất ít chip ARM có bộ đồng xử lý float cứng.

Trở lại năm 2007, điểm nổi trên cánh tay là một mớ hỗn độn, nhiều chip không có FPU. Những người thường có một trong những cái khác nhau và không tương thích. Tệ hơn nữa, nhánh Debian (một trong những bản phân phối linux của nhánh thời điểm đó) là vì lý do lịch sử được xây dựng cho một FPU có tên FPA mà rất ít chip có và chủ yếu dựa vào mô phỏng hạt nhân cho điểm nổi (điểm nổi phần mềm chậm, điểm nổi giả lập hạt nhân chậm hơn). Tôi nghĩ rằng tình huống trong các bản phát hành khác là tương tự nhưng tôi không tích cực về điều đó.

Với tình trạng lộn xộn tại thời điểm giải thích được đưa ra, lựa chọn tốt nhất là thực hiện một cổng EABI bằng cách sử dụng phiên bản cơ sở (phao mềm) của EABI. ABI này được thiết kế theo cách mà mã có thể sử dụng ABI cơ sở trong khi tùy chọn sử dụng FPU. Ý tưởng lúc đó là lõi của bản phân phối sẽ được xây dựng bằng điểm nổi phần mềm và sau đó mã cụ thể mà điểm nổi được sử dụng nặng có thể được xây dựng với điểm nổi phần cứng nhưng vẫn sử dụng ABI cơ sở (phao mềm). Cổng này được biết đến trong thế giới Debian là "armel".

Tuy nhiên, bit "gói cụ thể được xây dựng bằng cách sử dụng dấu phẩy động phần cứng" thực sự không hoạt động. Trong thực tế, một số gói bị làm phiền như vậy và cũng có các chi phí xáo trộn xung quanh giữa các thanh ghi số nguyên và dấu phẩy động.

Chuyển nhanh đến năm 2011 và tình hình đã thay đổi đáng kể. Arm đã rất nỗ lực thúc đẩy VFP và đại đa số "bộ xử lý ứng dụng" (loại thứ bạn tìm thấy trong điện thoại moblie và simliar) đã áp dụng nó. Một số bản phân phối linux lớn (ít nhất là Debian, Ubuntu và Fedora ban đầu, sau này) đã chọn thực hiện các cổng bằng cách sử dụng dấu phẩy động phần cứng và phao cứng ABI. Thật không may cho Pi, các bản phân phối này (đã đạt được sự đồng hành trong khoảng thời gian Pi được phát hành) thường đặt các yêu cầu phần cứng tối thiểu của chúng là ARMv7 với VFPv3_d16 để chúng không chạy trên Pi.

Vì vậy, người hâm mộ Pi bắt đầu làm việc trên các biến thể distro dành riêng cho pi, sử dụng điểm nổi phần cứng và phao cứng ABI nhưng được xây dựng với các cài đặt trình biên dịch sẽ chạy trên pi.


5

Kể từ ngày 18 tháng 9 năm 2012, Arch Linux ARM cũng có hỗ trợ float cứng. Đọc thông báo này:

Hôm nay chúng tôi sẽ mở kho lưu trữ cứng armv6 mới cho công chúng, với tất cả các gói được xây dựng để hỗ trợ đơn vị điểm nổi VFP có sẵn trong Raspberry Pi và Via APC-IO. Do không có đường dẫn nâng cấp giữa kho lưu trữ phao mềm armv5 và kho lưu trữ armv6h mới, chúng tôi cũng đã phát hành một hình ảnh cài đặt mới cho Raspberry Pi. Liên kết đến hình ảnh có sẵn trên trang Cài đặt cho Pi trên trang web chính của chúng tôi. Hình ảnh này cũng được thiết lập cho systemd thay vì sysvinit và initscripts, vì vậy thời gian khởi động nhanh hơn và cài đặt được chứng minh trong tương lai cho những thay đổi cuối cùng trở thành vĩnh viễn trong Arch.

Arch Linux ARM Raspberry Pi


4

Có, như những người khác đã tuyên bố Raspberry Pi không có hỗ trợ phao cứng. Kiểm tra hệ điều hành Raspbian .

Raspbian là một cổng không chính thức của Debian Wheezy armhf với các cài đặt biên dịch được điều chỉnh để tạo mã "phao cứng" được tối ưu hóa sẽ chạy trên Raspberry Pi. Điều này sẽ cung cấp hiệu suất nhanh hơn đáng kể cho các ứng dụng sử dụng nhiều hoạt động số học dấu phẩy động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.