Jadi, apakah RPi memiliki dukungan hard float?
Ya, khususnya (pada Pi asli) VFPv2.
Jika demikian, apakah ini lebih cepat daripada pelampung lunak?
iya nih
Ada beberapa artikel di sekitar yang mengatakan yang terbaik untuk menggunakan algoritma float lunak pada perangkat ARM, karena sangat sedikit chip ARM memiliki coprocessor float keras.
Kembali pada tahun 2007 floating point di tangan berantakan, banyak chip tidak memiliki FPU sama sekali. Mereka yang memang sering memiliki salah satu dari beberapa yang berbeda dan tidak kompatibel. Lengan Debian yang lebih buruk (salah satu distro lengan utama linux pada waktu itu) adalah karena alasan historis yang dibangun untuk FPU yang disebut FPA yang sangat sedikit chip miliki dan sebagian besar mengandalkan emulasi kernel untuk floating point (perangkat lunak floating point lambat, kernel floating point emulasi lebih lambat). Saya pikir situasi di distro lain serupa tetapi saya tidak positif tentang itu.
Mengingat kekacauan pada saat itu dibuat keputusan bahwa opsi terbaik adalah melakukan port EABI menggunakan versi baseline (soft-float) EABI. ABI ini dirancang sedemikian rupa sehingga kode dapat menggunakan ABI dasar sementara secara opsional menggunakan FPU. Idenya pada saat itu adalah bahwa inti dari distro akan dibangun menggunakan perangkat lunak floating point dan kemudian kode spesifik yang menggunakan floating point dapat dibangun dengan perangkat keras floating point tetapi masih menggunakan baseline (soft float) ABI. Port ini dikenal di dunia Debian sebagai "armel".
Namun "paket spesifik yang dibangun menggunakan titik mengambang perangkat keras" sedikit tidak berhasil. Dalam prakteknya beberapa paket repot untuk melakukan hal seperti itu dan ada juga biaya pengocokan nilai antara register integer dan floating point.
Maju cepat ke 2011 dan situasinya telah berubah sangat. Arm telah secara agresif mendorong VFP dan sebagian besar "pemroses aplikasi" (jenis yang Anda temukan di telepon seluler dan sejenisnya) telah mengadopsinya. Sejumlah distro linux utama (setidaknya Debian, Ubuntu dan Fedora awalnya, lebih belakangan) memilih untuk melakukan port menggunakan perangkat floating point dan hard float ABI. Sayangnya untuk Pi distro ini (yang mencapai penyelesaian sekitar waktu Pi dirilis) umumnya menetapkan persyaratan perangkat keras minimum mereka sebagai ARMv7 dengan VFPv3_d16 sehingga mereka tidak akan berjalan pada Pi.
Jadi penggemar Pi mulai bekerja pada varian distro pi-spesifik yang menggunakan titik apung perangkat keras dan ABI apung tetapi dibangun dengan pengaturan kompiler yang akan berjalan pada pi.