Matematik Çekirdek Kitaplığı - Math Kernel Library
| Geliştirici(ler) | Intel |
|---|---|
| İlk sürüm | 9 Mayıs 2003 |
| kararlı sürüm | 2021.4 / 1 Ekim 2021
|
| Yazılmış | C / C++ , Intel DPC++ Derleyicisi , Fortran |
| İşletim sistemi | Microsoft Windows , Linux , macOS |
| platformu | Intel Xeon , Intel Xe , Intel Core , Intel Atom |
| Tip | Kitaplık ve çerçeve |
| Lisans | ISSL kapsamında ücretsiz |
| İnternet sitesi |
yazılım |
Intel oneAPI Math Kernel Library , eski adıyla Intel Math Kernel Library ( Intel MKL ), bilim, mühendislik ve finansal uygulamalar için optimize edilmiş matematik rutinlerinden oluşan bir kitaplıktır . Temel matematik işlevleri arasında BLAS , LAPACK , ScaLAPACK , seyrek çözücüler, hızlı Fourier dönüşümleri ve vektör matematiği bulunur.
Kitaplık Intel işlemcileri destekler ve Windows , Linux ve macOS işletim sistemleri için kullanılabilir .
Intel oneAPI Math Kernel Library , Intel MKL rutinlerinin Data Parallel C++'dan kullanılmasına izin veren bir açık kaynak kod parçası olan oneAPI Math Kernel Library (oneMKL) belirtimi ile karıştırılmamalıdır .
Geçmiş ve lisanslama
Intel, 9 Mayıs 2003'te Math Kernel Library'yi başlattı ve buna blas.lib adını verdi. Projenin geliştirme ekipleri Rusya ve Amerika Birleşik Devletleri'nde bulunuyor.
Kitaplık, yeniden dağıtıma izin veren Intel Basitleştirilmiş Yazılım Lisansı koşulları kapsamında ücretsiz olarak bağımsız bir biçimde mevcuttu.
Nisan 2020'den bu yana MKL, oneAPI'nin bir parçası haline geldi. oneAPI Base Toolkit'in bir parçası olarak satın alındığında oneMKL için ticari destek sağlanır .
Performans ve satıcı kilitlenmesi
Intel C++ Derleyicisi ve Intel DPC++ Derleyicisi tarafından oluşturulan MKL ve diğer programlar, işlev çoklu sürüm oluşturma adı verilen bir teknikle performansı artırır: x86 komut kümesi uzantılarının çoğu için bir işlev derlenir veya yazılır ve çalışma zamanında bir "ana işlev" " geçerli CPU için en uygun sürümü seçmek için CPUID komutunu kullanır . Ancak, ana işlev Intel olmayan bir CPU'yu algıladığı sürece, CPU'nun desteklediğini iddia ettiği yönergelerden bağımsız olarak hemen hemen her zaman kullanılacak en temel (ve en yavaş) işlevi seçer. Bu, 2009'dan beri sisteme "sakat AMD" rutininin bir takma adını kazandırdı. 2020 itibariyle, Windows'ta önceden derlenmiş birçok matematiksel uygulamayla ( NumPy , SymPy gibi ) birlikte varsayılan olarak yüklenen sayısal kitaplık olmaya devam eden Intel'in MKL'si . MKL'ye güvenmesine rağmen MATLAB , Sürüm 2020a ile başlayan ve MKL tarafından AVX2 için Intel olmayan (AMD) CPU'lar için de tam destek sağlayan bir geçici çözüm uyguladı.
Eski sürümlerde, belgelenmemiş ortam değişkeninin ayarlanması, MKL_DEBUG_CPU_TYPE=5satıcı dizisine bağlı kod yolu seçimini geçersiz kılmak ve AMD işlemci tabanlı sistemlerde AVX2'ye kadar desteklenen talimatları etkinleştirmek için kullanılabilir ve bu da Intel CPU'lara kıyasla eşit veya daha iyi performans sağlar. En azından 1 2020 Güncellemesinden bu yana, ortam değişkeni artık çalışmıyor.
Ayrımcılığı ortadan kaldırmak için MKL'nin dahili rutinlerini bağlamak için en az iki yol keşfedilmiştir. Kanca, derleme sırasında bağlantı kurularak veya çalışma zamanında enjeksiyon yoluyla eklenebilir . Agner Fog , MKL ve ICC ikili dosyalarının ayrıca gizli bir ayrım gözetmeyen göndericiye sahip olduğunu keşfetti. mkl_serv_intel_cpu_true2019'da bir işlev keşfedildi. Fog'un intel_dispatch_patch'i, her iki rotayı da bağlayan kod sağlar. Daniël de Kok'a göre, MKL 2020 Güncelleme 1'de yalnızca ikinci işlevi yamalamak, AMD Zen performansını artırıyor.
Detaylar
Fonksiyonel kategoriler
Intel MKL aşağıdaki işlevsel kategorilere sahiptir:
-
Doğrusal cebir : BLAS rutinleri, gerçek ve karmaşık tek ve çift kesinlikli veriler için vektör-vektör (Seviye 1), matris-vektör (Seviye 2) ve matris matrisi (Seviye 3) işlemleridir. LAPACK, ayarlanmış LU, Cholesky ve QR çarpanlarına ayırma, özdeğer ve en küçük kareler çözücülerden oluşur. MKL ayrıca Seyrek BLAS, ScaLAPACK , Seyrek Çözücü, Genişletilmiş Özçözücü , PBLAS ve BLACS'ı da içerir.
- MKL, BLAS ve LAPACK için standart arabirimler kullandığından, diğer uygulamaları kullanan uygulama, MKL kitaplıkları ile yeniden bağlantı kurarak Intel ve uyumlu işlemcilerde daha iyi performans elde edebilir.
- MKL, 1B'den çok boyutluya, karmaşıktan karmaşığa, gerçekten karmaşığa ve rastgele uzunlukların gerçekten gerçeğe dönüşümlerini içeren çeşitli Hızlı Fourier Dönüşümleri (FFT'ler) içerir. Açık kaynak FFTW ile yazılan uygulamalar , kolay geçiş için MKL'nin bir parçası olarak sağlanan arabirim sarmalayıcı kitaplıklarıyla bağlantı kurularak kolayca MKL'ye taşınabilir.
- LAPACK ve FFT'lerin küme sürümleri, çoklu iş parçacığından gelen tek düğümlü paralelliğin yanı sıra MPI paralelliğinden yararlanmak için MKL'nin bir parçası olarak da mevcuttur.
- Vektör matematik işlevleri, tek ve çift kesinlikli gerçek ve karmaşık veri türleri için hesaplama açısından yoğun çekirdek matematiksel işlemleri içerir. Bunlar derleyici kitaplıklarındaki libm işlevlerine benzer, ancak daha iyi performans sağlamak için skalerler yerine vektörler üzerinde çalışır. Rutinlerin davranışını özelleştirmek için doğruluk, hata modu ve denormalize sayı işlemeyi ayarlamak için çeşitli kontroller vardır.
- İstatistik işlevleri, rastgele sayı üreteçlerini ve olasılık dağılımlarını içerir. çok çekirdekli işlemciler için optimize edilmiştir. Ayrıca, temel istatistikleri, bağımlılıkların tahminini vb. hesaplamak için yoğun hesaplamalı çekirdek içi ve dışı rutinler de dahildir.
- Veri uydurma işlevleri, veri analitiği, geometrik modelleme ve yüzey yaklaşımı uygulamalarında kullanılabilen 1 boyutlu enterpolasyon için eğri çizgileri (doğrusal, ikinci dereceden, kübik, arama, adım adım sabit) içerir.
- Derin Sinir Ağı
- Kısmi Diferansiyel Denklemler
- Doğrusal Olmayan Optimizasyon Problem Çözücüler
Ayrıca bakınız
- OneAPI (hesaplama hızlandırma)
- Sayısal kitaplıkların listesi
- Otomatik Ayarlı Lineer Cebir Yazılımı (ATLAS)
- GotoBLAS ve OpenBLAS
- Entegre Performans İlkelleri