Biblioteca intel oneAPI Math Kernel
Începeți cu Intel® oneAPI Math Kernel Library
Biblioteca Intel® oneAPI Math Kernel (oneMKL) vă ajută să obțineți performanță maximă cu o bibliotecă de calcul matematic de rutine extrem de optimizate, paralelizate extensiv pentru CPU și GPU. Biblioteca are interfețe C și Fortran pentru majoritatea rutinelor pe CPU și interfețe DPC++ pentru unele rutine atât pe CPU, cât și pe GPU. Puteți găsi suport complet pentru mai multe operații matematice în diferite interfețe, inclusiv:
Pentru C și Fortran pe CPU
- Algebră liniară
- Transformate Fourier rapide (FFT)
- Matematică vectorială
- Rezolvatori rare directe și iterative
- Generatoare de numere aleatorii
Pentru DPC++ pe CPU și GPU (Consultați Biblioteca Intel® oneAPI Math Kernel—Data Parallel C++ Developer Reference pentru mai multe detalii.)
- Algebră liniară
- BLAS
- Funcționalitatea sparse BLAS selectată
- Funcționalitatea LAPACK selectată
- Transformate Fourier rapide (FFT)
- 1D, 2D și 3D
- Generatoare de numere aleatorii
- Funcționalitate selectată
- Funcționalitatea Vector Math selectată
Înainte de a începe
Vizitați pagina Note de lansare pentru problemele cunoscute și cele mai actualizate informații.
Vizitați pagina de cerințe de sistem pentru biblioteca Intel® oneAPI Math Kernel pentru cerințele de sistem.
Vizitați Începeți cu Intel® oneAPI DPC++/C++ Compiler pentru cerințele compilatorului DPC++.
Pasul 1: Instalați biblioteca Intel® oneAPI Math Kernel
Descărcați biblioteca Intel® oneAPI Math Kernel din setul de instrumente de bază Intel® oneAPI.
Pentru distribuțiile Python, consultați Instalarea Intel® Distribution pentru Python* și Intel® Performance Libraries cu pip și PyPI.
Pentru distribuțiile Python, rețineți următoarea limitare:
Pachetul de dezvoltare oneMKL (mkl-devel) pentru distribuția PIP pe Linux* și macOS* nu oferă legături simbolice ale bibliotecilor dinamice (pentru mai multe informații consultați problema PIP GitHub #5919).
În cazul conectării unei biblioteci dinamice sau dinamice unice cu pachetul de dezvoltare oneMKL (pentru mai multe informații, consultați oneMKL Link Line Advisor) trebuie să modificați linia de legătură cu numele și versiunile complete ale bibliotecilor oneMKL.
Consultați Biblioteca Intel® oneAPI Math Kernel și instrumentul pkg-config pentru informații despre compilarea și conectarea cu instrumentul pkg-config.
linia de legătură oneMKL exampfișier cu setul de instrumente de bază oneAPI prin link-uri simbolice:
- Linux:
icc app.obj -L${MKLROOT}/lib/intel64 -lmkl_intel_lp64-lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl - MacOS:
icc app.obj -L${MKLROOT}/lib -Wl,-rpath,${MKLROOT}/lib-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread
-lm -ldl
Linia de legătură oneMKL exampfișier cu pachetul de dezvoltare PIP prin biblioteci, nume complete și versiuni: Linux:
icc app.obj ${MKLROOT}/lib/intel64/libmkl_intel_lp64.so.1 ${MKLROOT}/lib/intel64/libmkl_intel_thread.so.1 ${MKLROOT}/lib/intel64/libmkl_core.so.1 -liothread5 -lXNUMX -lm -ldl - MacOS:
icc app.obj -Wl,-rpath,${MKLROOT}/lib${MKLROOT}/lib/intel64/libmkl_intel_lp64.1.dylib $ {MKLROOT}/lib/intel64/libmkl_intel_thread.1.dylib
${MKLROOT}/lib/intel64/libmkl_core.1.dylib -liomp5 -lpthread -lm-ldl
Pasul 2: Selectați o funcție sau o rutină
Selectați o funcție sau o rutină din oneMKL care este cea mai potrivită pentru problema dvs. Utilizați aceste resurse:
Link resursă: Conținut
Ghid pentru dezvoltatori oneMKL pentru Linux*
Ghid pentru dezvoltatori oneMKL pentru Windows*
Ghid pentru dezvoltatori oneMKL pentru macOS*
Ghidul dezvoltatorului conține informații detaliate despre mai multe subiecte, inclusiv:
- Compilarea și legarea aplicațiilor
- Crearea de DLL-uri personalizate
- Filetat
- Managementul memoriei
Referință pentru dezvoltatori oneMKL - C
Language oneMKL Developer Reference – Fortran Language
Referință pentru dezvoltatori oneMKL – Limbajul DPC++
- Referința pentru dezvoltatori (în formatele C, Fortran și DPC++) conține descrieri detaliate ale funcțiilor și interfețelor pentru toate domeniile bibliotecii.
Consilier pentru găsirea funcției bibliotecii kernel matematic Intel® oneAPI
- Utilizați consilierul de căutare a funcției LAPACK pentru a explora rutinele LAPACK care sunt utile pentru o anumită problemă. De example, dacă specificați o operație ca:
- Tip de rutină: Computațională
- Problemă de calcul: Factorizarea ortogonală
- Tipul matricei: general
- Operație: Efectuați factorizarea QR
Pasul 3: Conectați-vă codul
Utilizați oneMKL Link Line Advisor pentru a configura comanda link în funcție de caracteristicile programului dvs.
Câteva limitări și cerințe suplimentare:
Biblioteca Intel® oneAPI Math Kernel pentru DPC++ acceptă numai utilizarea bibliotecii de interfață mkl_intel_ilp64 și threading secvenţial sau TBB.
Pentru interfețe DPC++ cu legături statice pe Linux
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 ${MKLROOT}/lib/intel64/libmkl_sycl.a -Wl,–start-group ${MKLROOT}/lib/intel64/libmkl_intel_ilp64.a ${MKLROOT}/lib/intel64/
libmkl_ .a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,–end-group -lsycl -lOpenCL -lpthread -ldl -lm
De example, construirea/conectarea static main.cpp cu interfețe ilp64 și threading TBB:
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 -I${MKLROOT}/include main.cpp $
{MKLROOT}/lib/intel64/libmkl_sycl.a -Wl,–start-group ${MKLROOT}/lib/intel64/
libmkl_intel_ilp64.a ${MKLROOT}/lib/intel64/libmkl_tbb_thread.a ${MKLROOT}/lib/intel64/
libmkl_core.a -Wl,–end-group -L${TBBROOT}/lib/intel64/gcc4.8 -ltbb -lsycl -lOpenCL -lpthread -lm -ldl
Pentru interfețe DPC++ cu legături dinamice pe Linux
icpx -fsycl -DMKL_ILP64 -L$ {MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_ -lmkl_core -lsycl -lOpenCL -lpthread -ldl -lm
De example, construirea/conectarea dinamică a main.cpp cu interfețe ilp64 și threading TBB:
icpx -fsycl -DMKL_ILP64 -I${MKLROOT}/include main.cpp -L${MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_tbb_thread -lmkl_tbb_thread -lmkl_core -Oddlmlthclt -bblldllthclt
Pentru interfețe DPC++ cu conexiune statică pe Windows
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 „%MKLROOT%”\lib\intel64\mkl_sycl.lib
mkl_intel_ilp64.lib mkl_ .lib mkl_core_lib sycl.lib OpenCL.lib
De example, construirea/conectarea static main.cpp cu interfețe ilp64 și threading TBB:
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 -I”%MKLROOT%\include” main.cpp”%MKLROOT%”\lib\intel64\mkl_sycl.lib mkl_intel_ilp_ilp64.lib_ilp_ldt.lib_mkl_cl_cpp. .lib OpenCL.lib tbb.lib
Pentru interfețe DPC++ cu conexiune dinamică pe Windows
icpx -fsycl -DMKL_ILP64 „%MKLROOT%”\lib\intel64\mkl_sycl_dll.lib mkl_intel_ilp64_dll.lib mkl_ _dll.lib mkl_core_dll.lib tbb.lib sycl.lib OpenCL.lib
De example, construirea/conectarea dinamică a main.cpp cu interfețe ilp64 și threading TBB:
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 -I”%MKLROOT%\include” main.cpp „%MKLROOT%”\lib\intel64\mkl_sycl_dll.lib mkl_intel_intel_ilp64_l_lpXNUMX_l_lp. lib tbb .lib sycl.lib OpenCL.lib
Pentru interfețele C/Fortran cu suport pentru descărcare OpenMP
Utilizați interfețele C/Fotran Intel® oneAPI Math Kernel Library cu funcția de descărcare OpenMP pe GPU.
Consultați Ghidul dezvoltatorului C OpenMP Offload pentru mai multe detalii despre această funcție.
Adăugați următoarele modificări la liniile de compilare/link C/Fortran oneMKL pentru a activa funcția de descărcare OpenMP pe GPU:
- Opțiuni suplimentare de compilare/link: -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl
- Bibliotecă suplimentară oneMKL: biblioteca oneMKL DPC++
De example, construirea/ conectarea dinamică a main.cpp pe Linux cu interfețe ilp64 și threading OpenMP:
icx -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl -DMKL_ILP64 -m64 -I$(MKLROOT)/include main.cpp L${MKLROOT}/lib/intel64 - lmkl_sycl -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lsycl -lOpenCL -lstdc++ -lpthread -lm -ldl
Pentru toate celelalte configurații acceptate, consultați Intel® oneAPI Math Kernel Library Link Line Advisor.
Găsiți mai multe
Resursa: Descriere
Tutorial: Utilizarea bibliotecii Intel® oneAPI Math Kernel pentru multiplicarea matricelor:
- Tutorial – Limbaj C
- Tutorial – Limba Fortran
Acest tutorial demonstrează cum puteți utiliza oneMKL pentru a înmulți matrice, a măsura performanța înmulțirii matricelor și a controla threadingul.
Intel® oneAPI Math Kernel Library (oneMKL) Note de lansare controlează threading.
Notele de lansare conțin informații specifice celei mai recente versiuni a oneMKL, inclusiv funcții noi și modificate. Notele de lansare includ link-uri către principalele resurse online de informații legate de lansare. De asemenea, puteți găsi informații despre:
- Ce este nou în lansare
- Conținutul produsului
- Obținerea suportului tehnic
- Definiții de licență
Biblioteca Intel® oneAPI Math Kernel
Pagina de produs Intel® oneAPI Math Kernel Library (oneMKL). Consultați această pagină pentru asistență și documentație online.
Cartea de bucate pentru biblioteca Intel® oneAPI Math Kernel
Biblioteca Intel® oneAPI Math Kernel conține multe rutine pentru a vă ajuta să rezolvați diverse probleme numerice, cum ar fi înmulțirea matricelor, rezolvarea unui sistem de ecuații și efectuarea unei transformări Fourier.
Note pentru statisticile vectoriale ale bibliotecii de kernel matematic Intel® oneAPI
Acest document include un overview, un model de utilizare și rezultatele testării generatoarelor de numere aleatorii incluse în VS.
Biblioteca Intel® oneAPI Math Kernel Statistici vectoriale Date de performanță ale generatorului de numere aleatorii
Datele de performanță obținute utilizând generatorul de numere aleatoare (RNG) de statistici vectoriale (VS), inclusiv unitatea de măsură CPE (ceasuri pe element), generatoare de numere aleatoare de bază (BRNG), generatoare de distribuție generate și lungimea vectorilor generați.
Intel® oneAPI Math Kernel Library Vector Mathematics Performance and Accuracy Data
Vector Mathematics (VM) calculează funcții elementare pe argumente vectoriale. VM include un set de implementări extrem de optimizate ale funcțiilor matematice de bază costisitoare din punct de vedere computațional (putere, trigonometrice, exponențiale, hiperbolice și altele) care funcționează pe vectori.
Note de aplicație pentru Statisticile rezumate ale bibliotecii de kernel matematic Intel® oneAPI
Statisticile rezumate este o subcomponentă a domeniului Statistici vectoriale a bibliotecii Intel® oneAPI Math Kernel. Summary Statistics vă oferă funcții pentru analiza statistică inițială și oferă soluții pentru procesarea paralelă a seturilor de date multidimensionale.
LAPACK Examples
Acest document oferă codul exampfișiere pentru rutinele oneMKL LAPACK (Linear Algebra PACKage).
Notificări și declinări de răspundere
Este posibil ca software-ul și încărcăturile de lucru utilizate în testele de performanță să fi fost optimizate pentru performanță numai pe microprocesoarele Intel. Testele de performanță, cum ar fi SYSmark și MobileMark, sunt măsurate folosind sisteme computerizate, componente, software, operațiuni și funcții specifice. Orice modificare a oricăruia dintre acești factori poate face ca rezultatele să varieze. Ar trebui să consultați alte informații și teste de performanță pentru a vă ajuta să evaluați complet achizițiile planificate, inclusiv performanța produsului respectiv atunci când este combinat cu alte produse. Pentru informatii mai complete vizitati www.intel.com/benchmarks.
Tehnologiile Intel pot necesita activarea hardware-ului, software-ului sau serviciilor activate.
Niciun produs sau componentă nu poate fi absolut sigur.
Costurile și rezultatele dvs. pot varia.
© Intel Corporation. Intel, sigla Intel și alte mărci Intel sunt mărci comerciale ale Intel Corporation sau ale subsidiarelor sale. Alte nume și mărci pot fi revendicate ca fiind proprietatea altora.
Informații despre produs și performanță
Performanța variază în funcție de utilizare, configurație și alți factori. Aflați mai multe la www.Intel.com/PerformanceIndex.
Notă revizuirea #20201201
Acest document nu acordă nicio licență (expressă sau implicită, prin excludere sau în alt mod) pentru niciun drept de proprietate intelectuală.
Produsele descrise pot conține defecte de proiectare sau erori cunoscute sub numele de errate care pot determina abaterea produsului de la specificațiile publicate. Errata caracterizate curente sunt disponibile la cerere.
Intel declină toate garanțiile exprese și implicite, inclusiv, fără limitare, garanțiile implicite de vandabilitate, potrivire pentru un anumit scop și neîncălcare, precum și orice garanție care decurge din cursul performanței, cursul tranzacțiilor sau utilizarea în comerț.
Documente/Resurse
![]() |
Biblioteca intel oneAPI Math Kernel [pdfGhid de utilizare OneAPI Math Kernel Library, Math Kernel Library, Kernel Library, Library |