1 puan yazan GN⁺ 2025-03-13 | Henüz yorum yok. | WhatsApp'ta paylaş
  • 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-newflang 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ı

  1. Fortran kaynak kodu
  2. MLIR (HLFIR + FIR) üretimi
  3. FIR dönüşümü
  4. LLVM IR dönüşümü
  5. 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.

Henüz yorum yok.