Raspberry Pi รองรับ Hardware Floating Point หรือไม่


34

มีบทความอยู่สองสามบทความที่บอกว่าเป็นการดีที่สุดที่จะใช้อัลกอริทึมแบบลอยอย่างนุ่มนวลบนอุปกรณ์ ARM เนื่องจากชิป ARM จำนวนน้อยมากที่มีตัวประมวลผลร่วมลอยตัวยาก ดังนั้น RPi มีการสนับสนุนแบบลอยอย่างหนักหรือไม่? ถ้าเป็นเช่นนั้นมันจะเร็วหรือไม่? (ควรเป็นเช่นนั้นใช่ไหม)

คำตอบ:


30

ตามคำถามที่พบบ่อย Raspberry Pi ใช้ชิป ARM 11 พร้อมการรองรับจุดลอยตัว:

คุณกำลังใช้ SoC อะไรอยู่?

SoC คือ Broadcom BCM2835 สิ่งนี้มี ARM1176JZFS พร้อมจุดลอยตัววิ่งที่ 700Mhz และ Videocore 4 GPU GPU มีความสามารถในการเล่นคุณภาพ BluRay โดยใช้ H.264 ที่ 40MBits / s มีการเข้าถึงแกน 3D อย่างรวดเร็วโดยใช้ไลบรารี OpenGL ES2.0 และ OpenVG ที่ให้มา

สิ่งนี้จะเร็วกว่าซอฟต์โฟลต (ถ้าไม่ใช่ฉันก็ต้องประหลาดใจ!) แม้ว่าในระบบที่ไม่มีการสนับสนุนฮาร์ดแวร์ก็มักจะเป็นความคิดที่ดีกว่าที่จะใช้ประโยชน์จากการประมวลผลจุดคงที่หากคุณไม่ต้องการช่วงของการลอยตัว ความแม่นยำจุด


9

มันมีการสนับสนุนจุดลอยตัวของฮาร์ดแวร์ เท่าที่ฉันทราบนี้ไม่สามารถใช้ได้ในค่าเริ่มต้น Debian distro สำหรับ RPi (ยัง) ฉันไม่แน่ใจเกินไปเกี่ยวกับ Arch แม้ว่าพวกเขาจะไม่ได้รับการสนับสนุนก็ตามฉันคิดว่ามันจะเร็ว ๆ นี้

ฉันมี Gentoo บน RPi ของฉันดังนั้นฉันมีทุกอย่างที่คอมไพล์ด้วยการสนับสนุน hard float โดยปริยาย มันเร็ว :)

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

(distcc และ cross-compiling ใช้กันอย่างแพร่หลายแน่นอน!)


Xiol คุณสามารถทำ Unixbench-Benchmark บนระบบ Gentoo ของคุณและโพสต์ผลลัพธ์ได้หรือไม่? มันคงน่าสนใจสำหรับการเปรียบเทียบเนื่องจากความแตกต่างของประสิทธิภาพระหว่าง soft-fpu และ hard-fpu นั้นค่อนข้างใหญ่ ตามcopypaste.at/2012/06/raspberry-pi-und-debian-7-wheezy-soft.html (ขออภัยภาษาเยอรมัน) มาตรฐานหินลับเป็นเรื่องเกี่ยวกับเร็วขึ้น 10 เท่ากับ Raspian (ARMHF arch w / HardFPU) เทียบกับ RPI แนะนำ Debian (ARMEL w / SoftFPU) ฉันเดาว่า GenToo จะต้องยิ่งใหญ่กว่านี้

6

ดังนั้น RPi มีการสนับสนุนแบบลอยอย่างหนักหรือไม่?

ใช่โดยเฉพาะ (บน Pi ดั้งเดิม) VFPv2

ถ้าเป็นเช่นนั้นมันจะเร็วหรือไม่?

ใช่

มีบทความอยู่สองสามบทความที่บอกว่าเป็นการดีที่สุดที่จะใช้อัลกอริทึมแบบลอยอย่างนุ่มนวลบนอุปกรณ์ ARM เนื่องจากชิป ARM จำนวนน้อยมากที่มีตัวประมวลผลร่วมลอยตัวยาก

ย้อนกลับไปในปีพ. ศ. 2550 จุดลอยตัวบนแขนมีความยุ่งเหยิงชิปจำนวนมากไม่มี FPU เลย ผู้ที่มักจะมีหนึ่งในหลาย ๆ ที่แตกต่างและเข้ากันไม่ได้ แขนที่แย่ Debian (หนึ่งในลินุกซ์แขนใหญ่ในเวลานั้น) เป็นเหตุผลทางประวัติศาสตร์ที่สร้างขึ้นสำหรับ FPU ที่เรียกว่า FPA ซึ่งมีชิปน้อยมากและส่วนใหญ่อาศัยการจำลองเคอร์เนลสำหรับจุดลอยตัว (ซอฟท์แวร์ลอยช้า ช้ากว่า) ฉันคิดว่าสถานการณ์ใน distros อื่น ๆ ที่คล้ายกัน แต่ฉันไม่ได้บวกกับที่

เมื่อพิจารณาถึงความยุ่งเหยิงในเวลานั้นการเลือกส่วนที่ดีที่สุดคือการทำพอร์ต EABI โดยใช้ EABI เวอร์ชั่นพื้นฐาน ABI นี้ได้รับการออกแบบในลักษณะที่รหัสสามารถใช้ baseline ABI ในขณะที่เลือกใช้ FPU แนวคิดในเวลานั้นคือแกนกลางของ distro จะถูกสร้างขึ้นโดยใช้จุดลอยตัวของซอฟต์แวร์และจากนั้นรหัสเฉพาะที่จุดลอยตัวที่ใช้หนักจะถูกสร้างขึ้นด้วยจุดลอยตัวของฮาร์ดแวร์ แต่ยังคงใช้ baseline (soft float) ABI พอร์ตนี้เป็นที่รู้จักในโลก Debian ว่า "armel"

อย่างไรก็ตาม "แพคเกจเฉพาะที่สร้างขึ้นโดยใช้จุดลอยฮาร์ดแวร์" ไม่ได้ผลจริงๆ ในทางปฏิบัติแพคเกจไม่กี่ใส่ใจที่จะทำสิ่งนั้นและยังมีค่าโสหุ้ยของการสับรอบระหว่างจำนวนเต็มและจุดลงทะเบียน

กรอไปข้างหน้าอย่างรวดเร็วถึงปี 2011 และสถานการณ์ได้เปลี่ยนไปอย่างมาก Arm ได้ผลักดัน VFP อย่างจริงจังและ "ตัวประมวลผลแอปพลิเคชัน" ส่วนใหญ่ (เรียงลำดับของสิ่งที่คุณพบในโทรศัพท์มือถือและ Simliar) ได้นำมาใช้ ลินุกซ์สำคัญจำนวนหนึ่ง (อย่างน้อย Debian, Ubuntu และ Fedora ในขั้นต้นและอื่น ๆ ในภายหลัง) เลือกที่จะทำพอร์ตโดยใช้ฮาร์ดแวร์ floating point และ hard float ABI น่าเสียดายสำหรับ Pi เหล่านี้ distros (ซึ่งถึง compleition รอบเวลา Pi ถูกปล่อย) โดยทั่วไปกำหนดความต้องการฮาร์ดแวร์ขั้นต่ำของพวกเขาเป็น ARMv7 กับ VFPv3_d16 ดังนั้นพวกเขาจะไม่ทำงานบน Pi

ดังนั้นแฟน Pi จึงเริ่มทำงานกับตัวแปร distro เฉพาะ pi ซึ่งใช้จุดลอยตัวของฮาร์ดแวร์และ hard float ABI แต่ถูกสร้างขึ้นด้วยการตั้งค่าคอมไพเลอร์ที่จะทำงานบน pi


5

ตั้งแต่วันที่ 18 กันยายน 2012 เป็นต้นไป Arch Linux ARM ก็รองรับการใช้งานแบบลอยตัวเช่นกัน อ่านประกาศนี้:

วันนี้เรากำลังเปิดตัวคลังเก็บ hard-float armv6 ใหม่สู่สาธารณะด้วยแพคเกจทั้งหมดที่สร้างขึ้นเพื่อสนับสนุนหน่วยจุดลอย VFP ที่มีอยู่ใน Raspberry Pi และ Via APC-IO เนื่องจากไม่มีเส้นทางการอัพเกรดระหว่างที่เก็บซอฟต์ลอย armv5 และที่เก็บ armv6h ใหม่เราจึงได้เปิดตัวอิมเมจการติดตั้งใหม่สำหรับ Raspberry Pi ลิงค์ไปยังรูปภาพนั้นมีอยู่ในหน้าการติดตั้งสำหรับ Pi บนเว็บไซต์หลักของเรา อิมเมจนี้ถูกเซ็ตอัพสำหรับ systemd แทน sysvinit และ initscripts ดังนั้นเวลาบูตจะเร็วขึ้นและการติดตั้งจะได้รับการพิสูจน์ในอนาคตสำหรับการเปลี่ยนแปลงที่ในที่สุดจะกลายเป็นถาวรใน Arch

Arch Linux ARM Raspberry Pi


4

ใช่ตามที่คนอื่น ๆ ระบุไว้ Raspberry Pi มีการสนับสนุนแบบลอยตัว ตรวจสอบระบบปฏิบัติการRaspbian

Raspbian เป็นพอร์ตที่ไม่เป็นทางการของ Debian Wheezy armhf พร้อมการตั้งค่าการรวบรวมที่ปรับแต่งเพื่อสร้างรหัส "hard float" ที่ได้รับการปรับปรุงซึ่งจะทำงานบน Raspberry Pi สิ่งนี้ควรให้ประสิทธิภาพที่เร็วขึ้นอย่างมากสำหรับแอปพลิเคชันที่ใช้การดำเนินการทางคณิตศาสตร์แบบเลขทศนิยม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.