logo intel

Libreria del kernel matematico intel oneAPI

immagine-prodotto-della-libreria-kernel-intel-oneAPI-Math

Inizia con Intel® oneAPI Math Kernel Library

Intel® oneAPI Math Kernel Library (oneMKL) consente di ottenere le massime prestazioni con una libreria di calcolo matematico di routine altamente ottimizzate e ampiamente parallelizzate per CPU e GPU. La libreria ha interfacce C e Fortran per la maggior parte delle routine su CPU e interfacce DPC++ per alcune routine su CPU e GPU. È possibile trovare un supporto completo per diverse operazioni matematiche in varie interfacce, tra cui:

Per C e Fortran su CPU

  • Algebra lineare
  • Trasformate veloci di Fourier (FFT)
  • Matematica vettoriale
  • Risolutori sparsi diretti e iterativi
  • Generatori di numeri casuali

Per DPC++ su CPU e GPU (fare riferimento a Intel® oneAPI Math Kernel Library—Data Parallel C++ Developer Reference per ulteriori dettagli).

  • Algebra lineare
    • BLAS
    • Funzionalità Sparse BLAS selezionata
    • Funzionalità LAPACK selezionata
  • Trasformate veloci di Fourier (FFT)
    • 1D, 2D e 3D
  • Generatori di numeri casuali
    • Funzionalità selezionata
  • Funzionalità matematica vettoriale selezionata

Prima di iniziare
Visita la pagina delle note di rilascio per i problemi noti e le informazioni più aggiornate.
Visitare la pagina dei requisiti di sistema della libreria del kernel Intel® oneAPI Math per i requisiti di sistema.
Visita la Guida introduttiva al compilatore Intel® oneAPI DPC++/C++ per i requisiti del compilatore DPC++.

Passaggio 1: installare la libreria kernel Intel® oneAPI Math
Scarica Intel® oneAPI Math Kernel Library da Intel® oneAPI Base Toolkit.
Per le distribuzioni Python, fare riferimento all'installazione della distribuzione Intel® per le librerie Python* e Intel® Performance con pip e PyPI.
Per le distribuzioni Python, tieni presente la seguente limitazione:
Il pacchetto oneMKL devel (mkl-devel) per la distribuzione PIP su Linux* e macOS* non fornisce collegamenti simbolici alle librerie dinamiche (per ulteriori informazioni, vedere PIP GitHub issue #5919).
Nel caso di un collegamento dinamico o singolo di una libreria dinamica con il pacchetto oneMKL devel (per ulteriori informazioni vedere oneMKL Link Line Advisor ) è necessario modificare la linea di collegamento con i nomi completi e le versioni delle librerie oneMKL.
Fare riferimento a Intel® oneAPI Math Kernel Library e allo strumento pkg-config per informazioni sulla compilazione e il collegamento con lo strumento pkg-config.
una linea di collegamento MKL esample con oneAPI Base Toolkit tramite collegamenti simbolici:

  • Linux:
    icc app.obj -L${MKLROOT}/lib/intel64 -lmkl_intel_lp64-lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl
  • Mac OS:
    icc app.obj -L${MKLROOT}/lib -Wl,-rpath,${MKLROOT}/lib-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread
    -lm -ldl
    La linea di collegamento oneMKL esample con pacchetto devel PIP tramite librerie nomi completi e versioni: 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 -liomp5 -lpthread -lm -ldl
  • Mac OS:
    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

Passaggio 2: selezionare una funzione o una routine
Seleziona una funzione o una routine da oneMKL più adatta al tuo problema. Usa queste risorse:

Collegamento alla risorsa: contenuto

Guida per sviluppatori oneMKL per Linux*
Guida per sviluppatori oneMKL per Windows*
Guida per sviluppatori oneMKL per macOS*

La Guida per gli sviluppatori contiene informazioni dettagliate su diversi argomenti, tra cui:

  • Compilazione e collegamento di applicazioni
  • Creazione di DLL personalizzate
  • Infilatura
  • Gestione della memoria

Riferimento per sviluppatori oneMKL – C
Language oneMKL Developer Reference – linguaggio Fortran
Riferimento per sviluppatori oneMKL – Linguaggio DPC++

  • Il Developer Reference (nei formati C, Fortran e DPC++) contiene descrizioni dettagliate delle funzioni e delle interfacce per tutti i domini della libreria.

Consulente per la ricerca delle funzioni della libreria Intel® oneAPI Math Kernel

  • Utilizzare il LAPACK Function Finding Advisor per esplorare le routine LAPACK che sono utili per un particolare problema. Per esample, se specifichi un'operazione come:
    • Tipo di routine: computazionale
    • Problema computazionale: Fattorizzazione ortogonale
    • Tipo di matrice: generale
    • Operazione: eseguire la fattorizzazione QR

Passaggio 3: collega il tuo codice
Utilizzare oneMKL Link Line Advisor per configurare il comando di collegamento in base alle funzionalità del programma.
Alcune limitazioni e requisiti aggiuntivi:
Intel® oneAPI Math Kernel Library per DPC++ supporta solo l'utilizzo della libreria di interfaccia mkl_intel_ilp64 e il threading sequenziale o TBB.

Per interfacce DPC++ con collegamento statico su 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
Per esempioample, compilazione/collegamento statico main.cpp con interfacce ilp64 e 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

Per interfacce DPC++ con collegamento dinamico su Linux
icpx -fsycl -DMKL_ILP64 -L$ {MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_ -lmkl_core -lsycl -lOpenCL -lpthread -ldl -lm
Per esempioample, compilazione/collegamento dinamico di main.cpp con interfacce ilp64 e threading TBB:
icpx -fsycl -DMKL_ILP64 -I${MKLROOT}/include main.cpp -L${MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_tbb_thread -lmkl_core -lsycl -lOpenCL -ltbb -lpthread -ldl -lm

Per interfacce DPC++ con collegamento statico su 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
Per esempioample, compilazione/collegamento statico main.cpp con interfacce ilp64 e 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_ilp64.lib mkl_tbb_thread.lib mkl_core.lib sycl .lib OpenCL.lib tbb.lib

Per interfacce DPC++ con collegamento dinamico su 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
Per esempioample, compilazione/collegamento dinamico di main.cpp con interfacce ilp64 e 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_ilp64_dll.lib mkl_tbb_thread_dll.lib mkl_core_dll.lib tbb .lib sycl.lib OpenCL.lib

Per interfacce C/Fortran con supporto OpenMP Offload
Utilizza le interfacce C/Fotran Intel® oneAPI Math Kernel Library con la funzione di offload OpenMP sulla GPU.
Consulta la Guida per gli sviluppatori di C OpenMP Offload per maggiori dettagli su questa funzione.
Aggiungi le seguenti modifiche alle righe di compilazione/collegamento C/Fortran oneMKL per abilitare la funzione di offload di OpenMP alla GPU:

  • Opzioni aggiuntive di compilazione/collegamento: -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl
  • Libreria oneMKL aggiuntiva: libreria oneMKL DPC++

Per esempioample, costruendo/collegando dinamicamente main.cpp su Linux con interfacce ilp64 e 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
Per tutte le altre configurazioni supportate, vedere Intel® oneAPI Math Kernel Library Link Line Advisor.

Scopri di più

Risorsa: Descrizione

Tutorial: utilizzo della libreria Intel® oneAPI Math Kernel per la moltiplicazione di matrici:

  • Tutorial – Linguaggio C
  • Tutorial – Linguaggio Fortran

Questo tutorial dimostra come utilizzare oneMKL per moltiplicare matrici, misurare le prestazioni della moltiplicazione di matrici e controllare il threading.

Le note sulla versione di Intel® oneAPI Math Kernel Library (oneMKL) controllano il threading.
Le note di rilascio contengono informazioni specifiche per l'ultima versione di oneMKL, comprese le funzionalità nuove e modificate. Le note di rilascio includono collegamenti alle principali risorse informative online relative al rilascio. Puoi anche trovare informazioni su:

  • Cosa c'è di nuovo nella versione
  • Contenuto del prodotto
  • Ottenere supporto tecnico
  • Definizioni di licenza

Libreria del kernel matematico Intel® oneAPI
Pagina del prodotto Intel® oneAPI Math Kernel Library (oneMKL). Consulta questa pagina per il supporto e la documentazione online.

Ricettario della libreria Intel® oneAPI Math Kernel
La libreria Intel® oneAPI Math Kernel contiene molte routine per aiutarti a risolvere vari problemi numerici, come la moltiplicazione di matrici, la risoluzione di un sistema di equazioni e l'esecuzione di una trasformata di Fourier.

Note per Intel® oneAPI Math Kernel Library Vector Statistics
Questo documento include un overview, un modello di utilizzo e i risultati dei test dei generatori di numeri casuali inclusi in VS.

Intel® oneAPI Math Kernel Library Statistiche vettoriali Generatore di numeri casuali Dati sulle prestazioni
Dati sulle prestazioni ottenuti utilizzando il generatore di numeri casuali (RNG) di statistiche vettoriali (VS) inclusa l'unità di misura CPE (clock per elemento), i generatori di numeri casuali di base (BRNG), i generatori di distribuzione generati e la lunghezza dei vettori generati.

Intel® oneAPI Math Kernel Library Vector Mathematics Prestazioni e dati sulla precisione
Vector Mathematics (VM) calcola funzioni elementari su argomenti vettoriali. VM include una serie di implementazioni altamente ottimizzate di funzioni matematiche di base computazionalmente costose (potenza, trigonometriche, esponenziali, iperboliche e altre) che operano su vettori.

Note sull'applicazione per le statistiche di riepilogo della libreria Intel® oneAPI Math Kernel
Summary Statistics è un sottocomponente del dominio Vector Statistics di Intel® oneAPI Math Kernel Library. Summary Statistics fornisce funzioni per l'analisi statistica iniziale e offre soluzioni per l'elaborazione parallela di set di dati multidimensionali.

LAPACK Esamples
Questo documento fornisce il codice example per le routine oneMKL LAPACK (Linear Algebra PACKage).

Avvisi e dichiarazioni di non responsabilità
Il software e i carichi di lavoro utilizzati nei test delle prestazioni potrebbero essere stati ottimizzati per le prestazioni solo su microprocessori Intel. I test delle prestazioni, come SYSmark e MobileMark, vengono misurati utilizzando specifici sistemi informatici, componenti, software, operazioni e funzioni. Qualsiasi modifica a uno qualsiasi di questi fattori può far variare i risultati. È necessario consultare altre informazioni e test delle prestazioni per assistervi nella valutazione completa degli acquisti contemplati, comprese le prestazioni di quel prodotto se combinato con altri prodotti. Per informazioni più complete visita www.intel.com/benchmarks.
Le tecnologie Intel potrebbero richiedere l'attivazione di hardware, software o servizi abilitati.
Nessun prodotto o componente può essere assolutamente sicuro.
I tuoi costi e risultati possono variare.
© Intel Corporation. Intel, il logo Intel e altri marchi Intel sono marchi di Intel Corporation o delle sue consociate. Altri nomi e marchi possono essere rivendicati come proprietà di altri.

Informazioni sul prodotto e sulle prestazioni
Le prestazioni variano in base all'uso, alla configurazione e ad altri fattori. Ulteriori informazioni su www.Intel.com/PerformanceIndex.
Avviso revisione n. 20201201
Il presente documento non concede alcuna licenza (espressa o implicita, per preclusione o altro) su alcun diritto di proprietà intellettuale.
I prodotti descritti possono contenere difetti di progettazione o errori noti come errata che possono causare la deviazione del prodotto dalle specifiche pubblicate. Le errata caratterizzate correnti sono disponibili su richiesta.
Intel declina tutte le garanzie esplicite e implicite, incluse, a titolo esemplificativo, le garanzie implicite di commerciabilità, idoneità per uno scopo particolare e non violazione, nonché qualsiasi garanzia derivante dal corso delle prestazioni, dal modo di trattare o dall'uso commerciale.

Documenti / Risorse

Libreria del kernel matematico intel oneAPI [pdf] Guida utente
oneAPI Libreria del kernel matematico, Libreria del kernel matematico, Libreria del kernel, Libreria

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *