C / C ++ 'da BLAS referans düzeyinde bir uygulama var mı?


11

Netlib BLAS uygulaması, çoğunlukla optimize edilmemiş ve iyi belgelendirilmiş mükemmel bir referanstır (örn. Zgemm ). Bununla birlikte, Fortran 77'de, daha modern bir programlama eğitimine sahip olanlar için bir şekilde erişilemez hale geliyor. C / C ++ 'da netlib gibi BLAS'ın referans düzeyinde bir uygulaması var mı?

Yanıtlar:


10

GNU Bilimsel Kütüphanesi'nin uygulanmasına baktınız mı ? Kaynak kodunu yeterince okunabilir buluyorum ve rutinler iyi belgeleniyor.


Bana iyi görünüyor. Belgeler biraz eksik, ancak değişken isimleri açık olduğunu düşünüyorum yeterince iyi seçilmiş. Muhtemelen netlib BLAS rutinlerinin açılış yorumunu başlatacağım. Tam olarak ne ile ilgileniyorsunuz? Bir alternatifin var mı?
Max Hutchinson

6

BLAS'ın dikkate değer bir C dili uygulaması ATLAS'tır. Yararlı özellikler arasında:

  1. Cebir rutinleri, hem basit C hem de çoklu mimariler ve varyantlar için yüksek düzeyde optimize edilmiş montajcı destekli versiyonlar olarak uygulandı.
  2. Yapı sistemi, verilen makinede hangisinin en hızlı olacağını belirlemek için ATLAS kütüphanesinin birden çok varyantını derleyen bir "otomatik ayarlayıcı" özelliğine sahiptir.

http://math-atlas.sourceforge.net/


ATLAS'a baktım ama kaçırdım. Başvuru uygulamasının yolu "src / blas / reference" şeklindedir ve tür karakteri ile rutin adı arasına "ref" eklenir ve karakter bağımsız değişkenleri eklenir.
Max Hutchinson


1

Sadece en yüksek performansa sahip olmayan (Intel Xeon Phi'nin 60 çekirdeğinde zirvenin% 85'inden daha iyi) değil, aynı zamanda en güzel şekilde yazılmış yüksek performanslı bir uygulama için BLIS'e bir göz atın:

https://github.com/flame/blis


Bu, referans düzeyinde bir uygulama olduğunu iddia etmiyor gibi görünmüyor
mabraham

Yüksek performanslı bir referans uygulaması olarak düşünmeyi seviyoruz.
Robert van de Geijn


-1

Şu anda, farklı paralelleştirme seviyelerinden birini yönlendiren örnek olarak dgemm kullanan "LAFF-Yüksek Performanslı Hesaplama" adlı Masif Açık Çevrimiçi Kurs üzerinde çalışıyoruz: öğretim seviyesi, OpenMP, MPI.

Bu, BLAS için bir referans uygulaması değildir, ancak BLAS'ın (performans için) nasıl kodlanacağı için bir referanstır. Haberdar olmak için www.ulaff.net adresini ziyaret edin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.