- Fedora Linux का RISC-V पोर्टिंग काम लगभग 3 महीनों से चल रहा है, और अधिकांश पैकेज Fedora 43 के लिए बिल्ड हो चुके हैं
- मौजूदा RISC-V हार्डवेयर में बिल्ड स्पीड बहुत धीमी है, और वही पैकेज बिल्ड करने में x86_64 की तुलना में अधिकतम 5 गुना से भी ज़्यादा समय लग रहा है
- Fedora की आधिकारिक आर्किटेक्चर के रूप में अपनाए जाने के लिए ऐसा सर्वर-ग्रेड हार्डवेयर चाहिए जो binutils को 1 घंटे के भीतर बिल्ड कर सके
- बिल्ड में देरी से पैकेज मेंटेनरों में असंतोष पैदा हो रहा है, और RISC-V को बाहर रखने की संभावना का भी ज़िक्र है
- आगे Fedora 44 बिल्ड और तेज़ बिल्डर लाने के ज़रिए स्पीड समस्या सुधारने, कर्नेल को एकरूप करने और LTO को निष्क्रिय बनाए रखने की योजना है
Fedora RISC-V पोर्टिंग की प्रगति
- लगभग 3 महीने पहले से Fedora Linux के RISC-V पोर्ट का काम चल रहा है, और इस दौरान कई बदलाव हुए हैं
- Fedora RISC-V ट्रैकर के अधिकांश आइटम सुलझाए जा चुके हैं और अभी सिर्फ 17 आइटम NEW स्थिति में बचे हैं
- Fedora पैकेज सोर्स लाकर
fedpkg mockbuild -r fedora-43-riscv64 कमांड से बिल्ड किया जा रहा है
- अब तक 86 पैकेजों के लिए Pull Request भेजे गए हैं, जिनमें से अधिकांश मर्ज हो चुके हैं, और Fedora 43 के लिए बिल्ड पूरा हो गया है
- ‘f43-updates’ टैग का अनुसरण करके अतिरिक्त बिल्ड किए जा सकते हैं
-
RISC-V बिल्ड स्पीड की समस्या
- RISC-V हार्डवेयर अभी बहुत धीमी बिल्ड स्पीड दिखा रहा है
binutils 2.45.1-4.fc43 का बिल्ड समय riscv64 पर 143 मिनट, aarch64 पर 36 मिनट, और x86_64 पर 29 मिनट मापा गया
- इस्तेमाल किया गया StarFive VisionFive 2 बोर्ड ड्राइवर सपोर्ट के मामले में अच्छा है, लेकिन स्पीड धीमी है
- वही पैकेज Milk-V Megrez बोर्ड पर बिल्ड करने में 58 मिनट लगे
- फिलहाल RISC-V बिल्ड में LTO (link-time optimization) निष्क्रिय है, ताकि मेमोरी उपयोग और बिल्ड समय कम किया जा सके
- बिल्डर में 4~8 कोर, 8~32GB RAM है, और इसकी परफॉर्मेंस को Arm Cortex-A55 स्तर का माना गया है
- आगे UltraRISC UR-DP1000 SoC (अधिकतम 64GB RAM) और SpacemiT K3 आधारित सिस्टम (अधिकतम 32GB RAM) से सुधार की उम्मीद है
-
Fedora की आधिकारिक आर्किटेक्चर में शामिल होने की शर्तें
- Fedora की आधिकारिक आर्किटेक्चर में शामिल होने के लिए ऐसा हार्डवेयर चाहिए जो binutils पैकेज को 1 घंटे के भीतर बिल्ड कर सके
- सिस्टम-व्यापी LTO सक्षम होने पर भी दूसरी आर्किटेक्चर के बराबर स्पीड हासिल करनी होगी
- बिल्ड परिणाम तभी रिपॉज़िटरी में शामिल होते हैं जब सभी आर्किटेक्चर का काम पूरा हो, इसलिए धीमे बिल्डर पैकेज मेंटेनरों की नाराज़गी का कारण बनते हैं
- पहले AArch64 बिल्डरों की स्पीड समस्या को लेकर भी शिकायतें थीं, और कुछ डेवलपर्स ने RISC-V को बाहर रखने की संभावना का ज़िक्र किया
- आगे के बिल्डर rack-mounted और remote management वाले server-class सिस्टम होने चाहिए; SBC आधारित मैन्युअल रीबूट वाला माहौल उपयुक्त नहीं है
- अगर ये शर्तें पूरी नहीं होतीं, तो Fedora में आधिकारिक 64-bit RISC-V आर्किटेक्चर के रूप में अपनाया जाना संभव नहीं होगा
-
QEMU से लोकल टेस्ट
- लंबे बिल्ड समय के कारण QEMU emulation के ज़रिए local testing उपयोगी है
- 80-कोर AArch64 desktop पर QEMU user-space riscv64 emulation के जरिए
llvm15 पैकेज को लगभग 4 घंटे में बिल्ड किया जा सकता है
- वही पैकेज Banana Pi BPI-F3 बिल्डर पर बिल्ड करने में 10.5 घंटे लगे
- LLVM पैकेज कोर और मेमोरी दोनों का उपयोग करता है, इसलिए Ampere One आधारित 192/384-कोर सिस्टम पर बेहतर परफॉर्मेंस की उम्मीद है
- QEMU का उपयोग केवल local build और testing के लिए किया जाता है, जबकि Fedora सिर्फ native build करता है
-
आगे की योजना
- Fedora Linux 44 बिल्ड शुरू करने की योजना है
- लक्ष्य यह है कि सभी बिल्डर एक ही kernel image का उपयोग करें, जबकि अभी kernel version मिले-जुले हैं
- LTO को आगे भी निष्क्रिय ही रखा जाएगा
- स्पीड समस्या हल करने के लिए नए और तेज़ बिल्डर लाने की योजना है, और कुछ भारी पैकेज उन बिल्डरों को सौंपे जाएंगे
1 टिप्पणियां
Hacker News की राय
मेरा मानना है कि दोष ISA को देने के बजाय silicon implementation और आर्किटेक्चर-विशिष्ट optimization की कमी वाले software में है
RISC-V भी आखिरकार विकसित होगा
ARM भी शुरुआत में speed-केंद्रित था, लेकिन बाद में power efficiency की ओर मुड़ा, embedded बाज़ार में सफल हुआ, और अब फिर से speed-केंद्रित दिशा में लौटता दिख रहा है
उदाहरण के लिए LLVM issue #150263, #141488 जैसे मामले हैं
साथ ही 4KiB page size तय होने की वजह से ARM की तुलना में performance सीमित होने की बात भी है
ARM तेज़ था, फिर धीमा हुआ, और फिर दोबारा तेज़ हुआ, लेकिन RISC-V ने अभी तक high-performance segment में कभी प्रतिस्पर्धात्मक क्षमता नहीं दिखाई है
छोटे टीमों की implementations प्रभावशाली हैं, लेकिन mobile·desktop·server स्तर पर अभी भी कमी है
असल में cache संरचना, DDR·PCI interface जैसी analog VLSI design ही मुख्य हैं, और इसे ठीक से करने वाली टीमें लगभग नहीं हैं
साथ ही हर कंपनी ‘high-performance RISC-V vendor’ बनना चाहती है, लेकिन ‘embedded market’ संभालना कोई नहीं चाहता
अमेरिका में chips खुद बनाने के बजाय केवल IP बेचने की संरचना होने से, असली hardware पाने के लिए Chinese vendors पर निर्भर रहना पड़ता है
Pentium 4 की Netburst architecture की सीमा सामने आने के बाद, low-power core से निकली Core architecture का Intel की मुख्यधारा बन जाना इसका प्रतिनिधि उदाहरण है
ARM का इतिहास भी कुछ ऐसा ही दिखता है
Steve Furber के अनुसार, power जोड़ना भूल जाने पर भी code चल गया था — इतनी efficiency थी
एक सहकर्मी द्वारा लिखी गई blog post पर सुधार साझा किया गया
Fedora RISC-V build system में Milk-V “Megrez” पर 67 मिनट में binutils build पूरा हुआ, जो पहले के 143 मिनट के रिकॉर्ड की तुलना में बड़ा सुधार है
अभी सबसे तेज़ development board Banana Pi नहीं, बल्कि SiFive “HiFive P550” और UltraRISC “DP1000” हैं
FOSDEM प्रस्तुति “Fedora on RISC-V: state of the arch” में भी संबंधित benchmarks शामिल हैं
Marcin का test StarFive “VisionFive 2” पर किया गया था, जो board स्थिर तो है लेकिन काफ़ी धीमा है
gcc build के दौरान 4 binaries को एक साथ link करने के लिए कम से कम 16GB चाहिए, और swap चालू करना पड़ता है ताकि स्थिरता बनी रहे
VisionFive 2 पर
-j1या-j2से build करना पड़ता है, इसलिए समय 2~4 गुना बढ़ जाता हैबेहतर linker (
ldreplacement) का उपयोग करना, या LLVM build system की तरह parallel link count अलग से तय करना, अधिक प्रभावी होगाARM को आज की स्थिति तक पहुँचने में 40 साल लगे, और RISC-V को अभी केवल 15 साल हुए हैं
कहा जा रहा है कि इस साल Tenstorrent RVA23-आधारित server platform जारी करेगा, इसलिए देखना दिलचस्प होगा
आखिरकार मुख्य बात यह है कि hardware vendors high-performance silicon कब लाते हैं
felix Milk-V Pioneer पर Arch Linux RISC-V repository build कर रहा है
मेरा मानना है कि SOPHGO पर लगे sanctions की वजह से development धीमा हुआ
SOPHGO के SG2380-आधारित Milk-V Oasis की release रद्द हो गई, लेकिन वह बहुत promising SoC था
इस कंपनी के chips ARM/RISC-V के बीच switch की जा सकने वाली dual architecture को support करते थे
Arch RISC-V repository, संबंधित लेख देखें
यह सवाल है कि RISC-V software को ज़रूरी तौर पर RISC-V system पर ही build क्यों करना चाहिए
compiler तो target architecture की जानकारी code में डालता है, इसलिए सिद्धांततः किसी दूसरे system पर भी यह संभव होना चाहिए — ऐसा सवाल उठता है
Fedora अभी केवल native build को support करता है, और cross compiler सिर्फ firmware के लिए bare-metal version के रूप में उपलब्ध है
साथ ही test automation कठिन होने के कारण, असली hardware पर test करने वाले native builds अधिक व्यावहारिक हैं
AArch64 भी शुरुआती दिनों में धीमा था, लेकिन अब Qt4 build सिर्फ 18 मिनट में पूरा हो जाता है
भाषाओं के अनुसार समाधान संभव हैं, लेकिन C/C++ ecosystem खास तौर पर जटिल है
इसलिए ज़्यादातर लोग VM या असली target hardware पर build करते हैं
LLVM के बाद यह संभव हुआ, लेकिन test के लिए अब भी emulator चाहिए
कुछ लोगों की राय है, “सीधे x86_64 server पर cross-compile क्यों नहीं कर लेते?”
एक साल पहले Mastodon पर एक पोस्ट देखी थी कि “सबसे तेज़ RISC-V hardware भी QEMU से धीमा है”
RISC-V कई क्षेत्रों में फैल रहा है, लेकिन high-performance computing में अभी भी कमज़ोर है
ऊपर से developer कंपनी अमेरिकी sanctions की वजह से गायब हो गई
cross-compilation असंभव नहीं है, लेकिन
%installऔर%checkचरणों में tests चलाना समस्या बनता हैउदाहरण के लिए rpy package PR में RISC-V पर vector tests बंद करने पड़े थे
build और test को अलग किया जा सकता है, लेकिन जटिलता के मुकाबले समय की बचत ज़्यादा नहीं है
2012 के LWN thread(लिंक) में भी cross-compilation के विरोध पर चर्चा हुई थी
i686 का x86_64 से 14% तेज़ होना संदिग्ध लगता है
आम तौर पर x86_64 ज़्यादा तेज़ होता है, और इसकी वजह registers की बढ़ी हुई संख्या और vector instructions हैं
हालाँकि compiler ज़्यादा optimization की कोशिश करता है, इसलिए build time लंबा हो सकता है
RISC-V में भी ऐसा ही कुछ होने की संभावना है
लेख में यह साफ़ नहीं बताया गया कि कौन-सा RISC-V CPU इस्तेमाल हुआ, इसलिए तुलना अस्पष्ट है
Milk-V Pioneer 64 cores·128GB RAM के साथ अपवाद है, लेकिन उसकी architecture पुरानी है और कीमत बहुत अधिक है