LLVM Fortran कंपाइलर Flang की पहली आधिकारिक रिलीज़
(blog.llvm.org)- LLVM ने 2020 में LLVM 11 से Fortran कंपाइलर Flang को शामिल करना शुरू किया
- शुरुआती executable का नाम
flangनहीं बल्किflang-newथा - LLVM 20 में
flang-newकोflangमें बदलकर Flang की परिपक्वता को मान्यता दी गई - कई वर्षों के विकास के बाद Flang अब आधिकारिक Fortran कंपाइलर के रूप में स्थापित हो गया है
Fortran का महत्व
- Fortran की शुरुआत 1950 के दशक में Formula Translation भाषा के रूप में हुई
- इसका वैज्ञानिक गणना में व्यापक उपयोग होता है (मौसम मॉडलिंग, fluid dynamics, computational chemistry आदि)
- हाल के वर्षों में Fortran ecosystem फिर से सक्रिय हुआ है
- Fortran package manager (fpm), अनौपचारिक standard library, LFortran आदि सामने आए हैं
- ARCHER2 supercomputer पर चलने वाले 80% से अधिक कोड Fortran में लिखे गए हैं
नए Fortran कंपाइलर की ज़रूरत क्यों है
- मौजूदा Fortran कंपाइलर:
- Intel Fortran Compiler, NVIDIA HPC Compiler आदि
- open source कंपाइलर: GFortran
- Flang प्रोजेक्ट के शुरुआती साझेदार: अमेरिकी राष्ट्रीय प्रयोगशालाएँ और NVIDIA
- लक्ष्य:
- open source और commercial उपयोग, दोनों के लिए उपयुक्त license उपलब्ध कराना
- Fortran कंपाइलर डेवलपर्स की सक्रिय community बनाना
- LLVM-आधारित tools के ज़रिए Fortran development को समर्थन देना
- नए language standard proposals के लिए experimental platform उपलब्ध कराना
- कई implementations होने से compatibility समस्याएँ कम की जा सकती हैं और सुधार संभव होता है
Flang की टाइमलाइन
- 1989: Portland Group(PGI) की स्थापना
- 2015: Classic Flang प्रोजेक्ट की शुरुआत (NVIDIA और अमेरिकी राष्ट्रीय प्रयोगशालाओं के नेतृत्व में)
- 2017: Classic Flang की पहली रिलीज़ और open source में परिवर्तन
- 2018: Classic Flang के frontend को F18 के रूप में दोबारा लिखने की शुरुआत
- 2019: F18 को LLVM प्रोजेक्ट में एकीकृत किया गया
- 2020: Flang का नया driver
flang-newपेश किया गया - 2022: NVIDIA ने FIR(Fortran IR) को LLVM में योगदान दिया
- 2024:
flang-newका नाम बदलकरflangकिया गया - 2025: LLVM 20.1 में
flangexecutable शामिल किया गया
Flang के नाम बदलने की प्रक्रिया
- Flang का नाम बदलने पर कई बार चर्चा हुई
- निर्णय के मानदंड:
- प्रमुख functionality और performance समस्याओं का समाधान
- अधूरी language features के लिए स्पष्ट error messages
- अन्य Fortran कंपाइलरों की तुलना में performance में बेहतर परिणाम आवश्यक
- व्यापक test suite के माध्यम से stability की पुष्टि
- LLVM के सह-संस्थापक Chris Lattner की सलाह:
"मौजूदा Flang और नए Flang के बीच नाम टकराव की समस्या को हल करना ज़रूरी है"
- अक्टूबर 2024 में community consensus के बाद
flang-new→flangनाम परिवर्तन पूरा हुआ
Flang की compilation प्रक्रिया और MLIR का उपयोग
MLIR(Multi-Level Intermediate Representation)
- केवल LLVM IR से high-level language information को संरक्षित रखना कठिन है
- MLIR high-level language की विशेषताओं को सुरक्षित रखते हुए optimization की सुविधा देता है
- Flang ने FIR(Fortran IR) को MLIR-आधारित रूप में बनाया है
- FIR, Fortran के array, type आदि की जानकारी को सुरक्षित रखता है
HLFIR(High Level FIR)
- FIR का ऊपरी-स्तर representation
- array optimization और उन्नत Fortran syntax के लिए समर्थन
compilation चरण
- Fortran source code
- MLIR (HLFIR + FIR) का निर्माण
- FIR transformation
- LLVM IR transformation
- machine IR → assembly → executable
Flang का OpenMP समर्थन
- OpenMP parallel programming के लिए मानक API है
- Flang ने MLIR में OpenMP-विशिष्ट dialect जोड़ा है
OpenMPIRBuilderका उपयोग कर इसे LLVM IR में बदला जाता है- Flang का OpenMP implementation संरचनात्मक रूप से Clang के समान है
Flang का driver डिज़ाइन
flang→ user-friendly driverflang -fc1→ developer-friendly frontend driver- Clang की
clangDriverlibrary पर आधारित implementation - विभिन्न targets और tools का समर्थन संभव
Flang के योगदान और प्रतिक्रियाएँ
- Arm: Flang-आधारित HPC toolchain का विकास
- Fujitsu: HPC test suite के माध्यम से Flang सुधार में योगदान
- Linaro: Fujitsu test suite के ज़रिए defects को ठीक किया
- SciPy: Flang अपनाने से Windows support समस्याओं का समाधान
- Barcelona Supercomputing Center: RISC-V vectorization और internal parallel model का समर्थन
- Chris Lattner:
"Flang, LLVM प्रोजेक्ट द्वारा उपलब्ध कराए गए collaboration model का प्रतीक है"
- AMD: अगली पीढ़ी का Fortran कंपाइलर Flang-आधारित रूप में विकसित कर रहा है
Flang में योगदान कैसे करें
- Flang एक open source प्रोजेक्ट है और लगातार विकसित हो रहा है
- इसे सीधे इस्तेमाल करके feedback दिया जा सकता है
- code contribution, documentation सुधार आदि जैसे कई योगदान के तरीके मौजूद हैं
- यह LLVM की standard contribution process का पालन करता है
अभी कोई टिप्पणी नहीं है.