ATLAS ve MKL arasındaki performans farkları?


31

ATLAS, derlendiğinde kendini makineye ayarlayan ücretsiz bir BLAS / LAPACK değişimidir. MKL, Intel tarafından gönderilen ticari kütüphanedir. Bu iki kütüphane performans açısından karşılaştırılabilir mi, yoksa MKL'nin bazı görevler için üstünlüğü var mı? Öyleyse hangileri?


Yanıtlar:


18

MKL (Intel'den), Intel işlemciler için optimize edilmiştir ve muhtemelen birçok durumda "üst el" e sahiptir. Ancak, burada açıklandığı gibi, AMD işlemciler için "en kötü" kod yollarını seçtiği için de "ünlü" .


12

BLAS monlitik değildir. BLAS1 ve BLAS2, hafıza bant genişliği sınırlıdır ve bunları belirginin ötesinde hızlandırmak için yapabileceğiniz pek bir şey yoktur (loop unrolling, seviye 2 için önbellek engelleme). BLAS3 daha ilginç ve prototipik kriter burada matris-matris çarpımıdır. Bildiğim kadarıyla GOTOBlas her zaman burada açık bir kazanan olmuştur, örneğin bu karşılaştırmaya veya buna ve bu gerekçeye bakınız .

Şimdi yıllar sonra ve BLIS Projemiz var . MKL'nin en iyi ücretsiz alternatifi.


4
Matt haklı, ama GotoBLAS artık geliştirilme aşamasında değil. Bazı modern işlemciler için hala oldukça iyi çalışıyor, ancak MKL, henüz yapmamışsa gelecekteki işlemcilerde DGEMM için kesinlikle bunu aşacak. Örneğin, Westmere'da test etmedik, ancak GotoBLAS çoktan kaybederse şaşırmam.
Bill Barth

2
Dr. Goto M $ tarafından satın alındı. Üzüntü . . .
meawoppl

2
OpenBLAS, GotoBLAS'tan çatallı bir projedir. github.com/xianyi/OpenBLAS
ShadowWarrior

Goto şimdi MKL üzerinde çalışıyor. Üzüntü yok artık :-)
Jeff

6

Profil, spekülasyon yapma! (ayrıca “Benchmark, spekülasyon yapma!” )

Genel olarak söylenebilecek hiçbir şey yok, büyük ölçüde yapmak istediğiniz görevlere (örneğin BLAS 1/2/3) ve içinde bulunduğunuz donanıma (açıkçası, Intel MKL ARM işlemcilerde çalışmaz) örneğin; ancak Intel işlemciler arasında bile performans farkları bekleyebilirsiniz).


Söylemeye değer bir şey daha AMD'nin işlemcileri AMD Çekirdek Matematik Kütüphanesi'ne uyarlanmış matematiksel kütüphaneler sunduğudur . Intel'in MKL'si kadar zengin özelliklere sahip değil, ancak BLAS'ı içeriyor.


Doğru. Buradaki diğer cevapları (bağlantılar tarafından kanıtlandığı gibi) yedeklemek için birçok anekdot kanıtı (ve fiili profil) vardır. Bununla birlikte, kilometreniz değişebilir ve her zaman haklı olduğunuzu bilmek profilinize yardımcı olur.
Geoff Oxberry,

1
MKL 499 dolar olduğu için profil can sıkıcı bir durum. Ancak 1 aylık deneme
süreleri

@ LyndonWhite bu hala böyle mi? İndirme sayfası ücretsiz
Luciano

Evet, artık özgür olduğuna inanıyorum, şimdi kullanan birçok insan görüyorum.
Lyndon White

6

Bu soruya verilen önceki cevaplar, dikkat çekici noktaların çoğunu kapsıyordu, ancak buna ilişkin bir yorum eklemek istiyorum:

MKL'nin bazı görevler için üstünlüğü var mı?

MKL ekibi, gelecekteki Intel komut setleri ve belirli işlemcilerdeki uygulamaları hakkında bilmek için eşsiz bir konumdadır. Ayrıca, Intel dışındaki kimsenin kullanamadığı özel işlemci simülatörleri ve üretim öncesi donanıma da erişebiliyorlar. Bu nedenle, MKL gelecekteki ürünler hakkındaki bilgi derecesi ve bu bilgiyi elde ettiklerinde üstündür. Bu nedenle, BLAS'ın herkesten daha iyi uygulamaları üretmeleri, en azından yeni özelliklere sahip bir ürünün kullanım ömrünün erken bir döneminde üretilmeleri çok şaşırtıcı olmamalıdır.

Öte yandan, Intel, AVX-512 komut seti konusunda oldukça açık ve geliştiricilerin, bunları yerel olarak desteklemeyen işlemcilerle ilgili AVX-512 talimatlarını taklit etmesine izin veren Intel® Yazılım Geliştirme Emülatörü'nü (SDE) sağlamıştır. Bu nedenle, BLAS'ın yüksek kaliteli açık kaynaklı uygulamalarının, bu ürünlerin ömrünün başlarında AVX-512'yi destekleyen Intel işlemciler için mevcut olup olmaması şaşırtıcı olmayacaktır.

Elbette, yoğun doğrusal cebir algoritmalarının temeli ile belirli bir işlemci hakkında ayrıntılı bilgi sahibi olmak için ne kadar fark yarattığı tam olarak çözülememiştir. Aşağıdaki alıntı bu konuyu benden daha iyi ele alıyor:

Teoride teori ile pratik arasında bir fark yoktur. Fakat pratikte var.

Tam Açıklama: Intel için çalışıyorum.


MKL'yi açık kaynaklı bulma şansı var mı?
Royi

Ne amaçla? MKL zaten biradaki gibi ücretsiz. BLIS'in kaynak kodunu okurken çok daha büyük bir eğitim değeri vardır. Montajı okumak istiyorsanız, OpenBLAS'ı deneyin.
Jeff,

1

Satıcı BLAS kitaplıkları ve açık kaynak BLAS kitaplıkları arasındaki temel farkın, açık kaynağın en yeni donanım özelliklerini desteklemesi için gereken zaman olduğunu düşünüyorum.

BLAS yaygın olarak kullanıldığı için, en yeni donanım özelliklerini desteklemek satıcının ilgisini çekmektedir. Örneğin , Ocak 2011'de Intel'in AVX vektör uzantılarını "kumlu köprü" işlemciyle tanıttığını düşünün . MKL, CPU kullanmadan önce bile AVX desteğine sahipti, ancak daha yakın bir zamanda ATLAS (2011'in sonları) AVX için destek almaya başladı .

Ayrıca, uygulamanız gerçekten performans gerektiriyorsa ve farklı BLAS kitaplıklarını karşılaştırmaya başlamadan önce veya herhangi bir şeyi optimize etmeye başlamıyorsanız: uygulamanızın profilini oluşturun. İnsan sezgisinin çok etkili bir profil belirleyicisi olmadığı sık görülür, en azından benimki olmadığını biliyorum! Bu yüzden, rastgele bir şekilde optimizasyon yapmak için zaman harcamak yerine, uygulamanızın profilini görüntüleyin ve her bir darboğaza sistematik olarak yaklaşın.

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.