- LLVM, 2020’de LLVM 11’den itibaren Fortran derleyicisi Flang’i bünyesine katıyordu
- İlk çalıştırılabilir dosyanın adı
flang değil, flang-new idi
- LLVM 20’de
flang-new, flang olarak değiştirilerek Flang’in olgunlaştığı kabul edildi
- Flang, yıllar süren geliştirme sonunda resmi Fortran derleyicisi olarak konumlandı
Fortran’ın önemi
- Fortran, 1950’lerde Formula Translation dili olarak başladı
- Bilimsel hesaplamada yaygın olarak kullanılıyor (hava durumu modelleme, akışkanlar dinamiği, hesaplamalı kimya vb.)
- Son dönemde Fortran ekosistemi yeniden canlandı
- Fortran paket yöneticisi (fpm), gayriresmî standart kütüphane, LFortran vb. ortaya çıktı
- ARCHER2 süper bilgisayarında çalışan kodların %80’inden fazlası Fortran ile yazılmış durumda
Neden yeni bir Fortran derleyicisine ihtiyaç var
- Mevcut Fortran derleyicileri:
- Intel Fortran Compiler, NVIDIA HPC Compiler vb.
- Açık kaynak derleyici: GFortran
- Flang projesinin ilk ortakları: ABD ulusal araştırma laboratuvarları ve NVIDIA
- Hedefler:
- Açık kaynak ve ticari kullanıma uygun bir lisans sunmak
- Aktif bir Fortran derleyici geliştirici topluluğu kurmak
- LLVM tabanlı araçlarla Fortran geliştirmeyi desteklemek
- Yeni dil standardı önerileri için deneysel bir platform sağlamak
- Birden fazla uygulamanın varlığı, uyumluluk sorunlarını azaltıp iyileştirme imkânı sağlar
Flang zaman çizelgesi
- 1989: Portland Group (PGI) kuruldu
- 2015: Classic Flang projesi başladı (NVIDIA ve ABD ulusal laboratuvarlarının öncülüğünde)
- 2017: Classic Flang’in ilk sürümü yayımlandı ve açık kaynağa geçti
- 2018: Classic Flang ön ucunun F18 olarak yeniden yazımına başlandı
- 2019: F18, LLVM projesine entegre edildi
- 2020: Flang’in yeni sürücüsü
flang-new tanıtıldı
- 2022: NVIDIA, FIR’ı (Fortran IR) LLVM’ye katkı olarak sundu
- 2024:
flang-new, flang olarak yeniden adlandırıldı
- 2025: LLVM 20.1’e
flang çalıştırılabilir dosyası dahil edildi
Flang’in yeniden adlandırılma süreci
- Flang’in adının değiştirilmesi birkaç kez tartışıldı
- Karar ölçütleri:
- Temel işlev ve performans sorunlarının çözülmüş olması
- Tamamlanmamış dil özellikleri için açık hata mesajları verilmesi
- Diğer Fortran derleyicileriyle performans karşılaştırmalarında iyi sonuçlar alınması
- Geniş kapsamlı test paketleriyle kararlılığın doğrulanması
- LLVM kurucu ortaklarından Chris Lattner’ın tavsiyesi:
> "Mevcut Flang ile yeni Flang arasındaki ad çakışması sorununun çözülmesi gerekiyor"
- Ekim 2024’te, topluluk uzlaşısının ardından
flang-new → flang olarak yeniden adlandırma tamamlandı
Flang’in derleme süreci ve MLIR’nin kullanıma alınması
MLIR (Multi-Level Intermediate Representation)
- Yalnızca LLVM IR ile üst düzey dil bilgisini korumak zor
- MLIR, üst düzey dillerin özelliklerini koruyup optimize etmeyi mümkün kılar
- Flang, FIR’ı (Fortran IR) MLIR tabanlı olarak inşa ediyor
- FIR, Fortran’ın dizi, tür vb. bilgilerini korur
HLFIR (High Level FIR)
- FIR’ın daha üst düzey bir gösterimi
- Dizi optimizasyonları ve gelişmiş Fortran sözdizimi desteği
Derleme aşamaları
- Fortran kaynak kodu
- MLIR (HLFIR + FIR) üretimi
- FIR dönüşümü
- LLVM IR dönüşümü
- Machine IR → assembly → çalıştırılabilir dosya
Flang’in OpenMP desteği
- OpenMP, paralel programlama için standart bir API’dir
- Flang, MLIR’ye OpenMP’ye özel bir dialect ekledi
OpenMPIRBuilder kullanılarak LLVM IR’ye dönüştürülür
- Flang’in OpenMP uygulaması yapısal olarak Clang’e benzer
Flang’in sürücü tasarımı
flang → kullanıcı dostu sürücü
flang -fc1 → geliştirici dostu ön uç sürücüsü
- Clang’in
clangDriver kütüphanesi temel alınarak uygulandı
- Çeşitli hedefler ve araçlar desteklenebiliyor
Flang’e katkılar ve tepkiler
- Arm: Flang tabanlı bir HPC araç zinciri geliştiriyor
- Fujitsu: HPC test paketleri aracılığıyla Flang’in iyileştirilmesine katkı sundu
- Linaro: Fujitsu test paketleriyle hataları düzeltti
- SciPy: Flang’in benimsenmesiyle Windows desteği sorunu çözüldü
- Barcelona Supercomputing Center: RISC-V vektörleştirme ve dahili paralel model desteği
- Chris Lattner:
> "Flang, LLVM projesinin sunduğu iş birliği modelinin bir simgesidir"
- AMD: Yeni nesil Fortran derleyicisini Flang tabanlı olarak geliştiriyor
Flang’e nasıl katkı sağlanır
- Flang, açık kaynak bir proje olarak gelişimini sürdürüyor
- Doğrudan kullanıp geri bildirim vermek mümkün
- Kod katkısı, belge düzeltmeleri gibi çeşitli katkı yolları var
- LLVM’nin standart katkı süreci izleniyor
Henüz yorum yok.