logo firmy Intel

Intel oneAPI Math Library Kernel

intel-oneAPI-Math-Kernel-Library-product-image

Rozpocznij pracę z biblioteką jądra matematyki Intel® oneAPI

Biblioteka Intel® oneAPI Math Kernel Library (oneMKL) pomaga osiągnąć maksymalną wydajność dzięki matematycznej bibliotece obliczeniowej wysoce zoptymalizowanych, szeroko równoległych procedur dla procesora i karty graficznej. Biblioteka posiada interfejsy C i Fortran dla większości procedur na CPU oraz interfejsy DPC++ dla niektórych procedur na CPU i GPU. Możesz znaleźć kompleksowe wsparcie dla kilku operacji matematycznych w różnych interfejsach, w tym:

Dla C i Fortran na CPU

  • Algebra liniowa
  • Szybkie transformaty Fouriera (FFT)
  • Matematyka wektorowa
  • Bezpośrednie i iteracyjne solwery rzadkie
  • Generatory liczb losowych

W przypadku DPC++ na procesorze i karcie graficznej (więcej informacji można znaleźć w dokumencie Intel® oneAPI Math Kernel Library — Data Parallel C++ Developer Reference).

  • Algebra liniowa
    • BLASZ
    • Wybrana funkcjonalność Sparse BLAS
    • Wybrana funkcjonalność LAPACK
  • Szybkie transformaty Fouriera (FFT)
    • 1D, 2D i 3D
  • Generatory liczb losowych
    • Wybrana funkcjonalność
  • Wybrana funkcja Vector Math

Zanim zaczniesz
Odwiedź stronę Informacje o wersji, aby zapoznać się ze znanymi problemami i najbardziej aktualnymi informacjami.
Odwiedź stronę Intel® oneAPI Math Kernel Library Wymagania systemowe, aby zapoznać się z wymaganiami systemowymi.
Odwiedź stronę Pierwsze kroki z kompilatorem Intel® oneAPI DPC++/C++, aby zapoznać się z wymaganiami kompilatora DPC++.

Krok 1: Zainstaluj bibliotekę jądra Intel® oneAPI Math
Pobierz bibliotekę jądra Intel® oneAPI Math z podstawowego zestawu narzędzi Intel® oneAPI.
W przypadku dystrybucji języka Python zapoznaj się z artykułem Instalowanie bibliotek Intel® Distribution for Python* i Intel® Performance Libraries za pomocą pip i PyPI.
W przypadku dystrybucji języka Python należy zwrócić uwagę na następujące ograniczenie:
Pakiet devel oneMKL (mkl-devel) do dystrybucji PIP w systemach Linux* i macOS* nie udostępnia dowiązań symbolicznych bibliotek dynamicznych (więcej informacji można znaleźć w artykule PIP GitHub nr 5919).
W przypadku linkowania dynamicznego lub pojedynczej biblioteki dynamicznej z pakietem deweloperskim oneMKL (więcej informacji w oneMKL Link Line Advisor ) należy zmodyfikować linię link z pełnymi nazwami i wersjami bibliotek oneMKL.
Informacje na temat kompilowania i łączenia za pomocą narzędzia pkg-config można znaleźć w Bibliotece jądra Intel® oneAPI Math i narzędziu pkg-config.
Linia łącząca oneMKL npampplik z zestawem narzędzi oneAPI Base Toolkit za pomocą dowiązań symbolicznych:

  • 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 łącząca oneMKL npampplik z pakietem deweloperskim PIP poprzez biblioteki pełne nazwy i wersje: 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
  • 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

Krok 2: Wybierz funkcję lub procedurę
Wybierz funkcję lub procedurę z oneMKL, która najlepiej pasuje do Twojego problemu. Skorzystaj z tych zasobów:

Link do zasobów: Spis treści

Podręcznik programisty oneMKL dla systemu Linux*
Podręcznik programisty oneMKL dla systemu Windows*
Podręcznik programisty oneMKL dla systemu macOS*

Podręcznik programisty zawiera szczegółowe informacje na kilka tematów, w tym:

  • Kompilowanie i łączenie aplikacji
  • Tworzenie niestandardowych bibliotek DLL
  • Nawlekanie
  • Zarządzanie pamięcią

Dokumentacja programisty oneMKL — C
Language oneMKL Developer Reference — język Fortran
Dokumentacja programisty oneMKL — język DPC++

  • Podręcznik programisty (w formatach C, Fortran i DPC++) zawiera szczegółowe opisy funkcji i interfejsów dla wszystkich domen bibliotek.

Doradca wyszukiwania funkcji biblioteki jądra Intel® oneAPI Math

  • Użyj Doradcy wyszukiwania funkcji LAPACK, aby zbadać procedury LAPACK, które są przydatne w przypadku konkretnego problemu. na przykładample, jeśli określisz operację jako:
    • Typ rutyny: obliczeniowy
    • Problem obliczeniowy: Faktoryzacja ortogonalna
    • Typ matrycy: Ogólne
    • Operacja: Wykonaj faktoryzację QR

Krok 3: Połącz swój kod
Skorzystaj z oneMKL Link Line Advisor, aby skonfigurować polecenie link zgodnie z funkcjami programu.
Niektóre ograniczenia i dodatkowe wymagania:
Biblioteka Intel® oneAPI Math Kernel Library dla DPC++ obsługuje tylko korzystanie z biblioteki interfejsu mkl_intel_ilp64 i wątków sekwencyjnych lub TBB.

Dla interfejsów DPC++ ze statycznym łączeniem w systemie Linux
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 ${MKLROOT}/lib/intel64/libmkl_sycl.a -Wl,–grupa startowa ${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
Na przykładampplik, budowanie/statyczne łączenie main.cpp z interfejsami ilp64 i wątkami TBB:
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 -I${MKLROOT}/include main.cpp $
{MKLROOT}/lib/intel64/libmkl_sycl.a -Wl,–grupa startowa ${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

Dla interfejsów DPC++ z dynamicznym łączeniem w systemie Linux
icpx -fsycl -DMKL_ILP64 -L$ {MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_ -lmkl_core -lsycl -lOpenCL -lpthread -ldl -lm
Na przykładampplik, budowanie/dynamiczne łączenie main.cpp z interfejsami ilp64 i wątkami 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

Dla interfejsów DPC++ ze statycznym łączeniem w systemie 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
Na przykładampplik, budowanie/statyczne łączenie main.cpp z interfejsami ilp64 i wątkami 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

Dla interfejsów DPC++ z dynamicznym łączeniem w systemie 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
Na przykładampplik, budowanie/dynamiczne łączenie main.cpp z interfejsami ilp64 i wątkami 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

Dla interfejsów C/Fortran z obsługą odciążania OpenMP
Użyj interfejsów C/Fotran Intel® oneAPI Math Kernel Library z funkcją odciążania OpenMP do GPU.
Więcej informacji na temat tej funkcji można znaleźć w przewodniku programisty C OpenMP Offload.
Dodaj następujące zmiany do linii kompilacji/linków C/Fortran oneMKL, aby włączyć funkcję odciążania OpenMP na GPU:

  • Dodatkowe opcje kompilacji/połączenia: -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl
  • Dodatkowa biblioteka oneMKL: biblioteka oneMKL DPC++

Na przykładampplik, budowanie/dynamiczne łączenie pliku main.cpp w systemie Linux z interfejsami ilp64 i wątkami 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
W przypadku wszystkich innych obsługiwanych konfiguracji zobacz Intel® oneAPI Math Kernel Library Link Line Advisor.

Znajdź więcej

Zasób: opis

Samouczek: korzystanie z biblioteki Intel® oneAPI Math Kernel Library do mnożenia macierzy:

  • Samouczek – język C
  • Samouczek – język Fortran

W tym samouczku pokazano, jak można używać oneMKL do mnożenia macierzy, mierzenia wydajności mnożenia macierzy i sterowania wątkami.

Informacje o wersji Intel® oneAPI Math Kernel Library (oneMKL) sterują wątkami.
Informacje o wersji zawierają informacje dotyczące najnowszej wersji oneMKL, w tym nowe i zmienione funkcje. Informacje o wydaniu zawierają łącza do głównych zasobów informacyjnych online związanych z wydaniem. Można również znaleźć informacje na temat:

  • Co nowego w wydaniu
  • Zawartość produktu
  • Uzyskanie wsparcia technicznego
  • Definicje licencji

Biblioteka jądra matematyki Intel® oneAPI
Strona produktu Intel® oneAPI Math Kernel Library (oneMKL). Zobacz tę stronę, aby uzyskać wsparcie i dokumentację online.

Książka kucharska Intel® oneAPI Math Kernel Library
Biblioteka Intel® oneAPI Math Kernel Library zawiera wiele procedur ułatwiających rozwiązywanie różnych problemów numerycznych, takich jak mnożenie macierzy, rozwiązywanie układów równań i przeprowadzanie transformacji Fouriera.

Uwagi dotyczące statystyk wektorowych biblioteki jądra matematyki Intel® oneAPI
Ten dokument zawiera ponadview, model użytkowania i wyniki testów generatorów liczb losowych zawartych w VS.

Intel® oneAPI Math Kernel Library Statystyki wektorowe Dane dotyczące wydajności generatora liczb losowych
Dane dotyczące wydajności uzyskane za pomocą generatora liczb losowych (RNG) statystyki wektorowej (VS), w tym jednostki miary CPE (zegary na element), podstawowych generatorów liczb losowych (BRNG), wygenerowanych generatorów dystrybucji i długości wygenerowanych wektorów.

Intel® oneAPI Math Kernel Library Dane dotyczące wydajności i dokładności matematyki wektorowej
Matematyka wektorowa (VM) oblicza funkcje elementarne na argumentach wektorowych. VM zawiera zestaw wysoce zoptymalizowanych implementacji kosztownych obliczeniowo podstawowych funkcji matematycznych (potęgowych, trygonometrycznych, wykładniczych, hiperbolicznych i innych), które działają na wektorach.

Uwagi aplikacyjne dotyczące statystyki podsumowującej bibliotekę jądra Intel® oneAPI Math
Statystyki podsumowujące to składnik podrzędny domeny Statystyki wektorowe biblioteki Intel® oneAPI Math Kernel Library. Statystyki podsumowujące udostępniają funkcje do wstępnej analizy statystycznej i oferują rozwiązania do równoległego przetwarzania wielowymiarowych zestawów danych.

LAPACK Examples
Ten dokument zawiera kod npamppliki dla procedur oneMKL LAPACK (Linear Algebra PACKage).

Uwagi i zastrzeżenia
Oprogramowanie i obciążenia używane w testach wydajności mogły zostać zoptymalizowane pod kątem wydajności tylko na mikroprocesorach Intel. Testy wydajności, takie jak SYSmark i MobileMark, są mierzone przy użyciu określonych systemów komputerowych, komponentów, oprogramowania, operacji i funkcji. Każda zmiana któregokolwiek z tych czynników może spowodować różnice w wynikach. Powinieneś zapoznać się z innymi informacjami i testami wydajności, aby pomóc Ci w pełnej ocenie rozważanych zakupów, w tym wydajności tego produktu w połączeniu z innymi produktami. Aby uzyskać pełniejsze informacje, odwiedź stronę www.intel.com/benchmarks.
Technologie Intel mogą wymagać aktywacji sprzętu, oprogramowania lub usługi.
Żaden produkt ani komponent nie może być całkowicie bezpieczny.
Twoje koszty i wyniki mogą się różnić.
© Intel Corporation. Intel, logo Intel i inne znaki Intel są znakami towarowymi firmy Intel Corporation lub jej podmiotów zależnych. Inne nazwy i marki mogą być przedmiotem praw osób trzecich.

Informacje o produkcie i wydajności
Wydajność różni się w zależności od użytkowania, konfiguracji i innych czynników. Dowiedz się więcej na www.Intel.com/PerformanceIndex.
Powiadomienie o wersji nr 20201201
Niniejszy dokument nie udziela żadnej licencji (wyraźnej lub dorozumianej, na zasadzie estoppel lub w inny sposób) na jakiekolwiek prawa własności intelektualnej.
Opisane produkty mogą zawierać wady konstrukcyjne lub błędy znane jako errata, które mogą powodować odchylenie produktu od opublikowanych specyfikacji. Aktualne scharakteryzowane errata są dostępne na żądanie.
Firma Intel zrzeka się wszelkich wyraźnych i dorozumianych gwarancji, w tym między innymi dorozumianych gwarancji przydatności handlowej, przydatności do określonego celu i nienaruszalności, jak również wszelkich gwarancji wynikających z przebiegu działania, przebiegu transakcji lub użycia w handlu.

Dokumenty / Zasoby

Intel oneAPI Math Library Kernel [plik PDF] Instrukcja użytkownika
Biblioteka jądra matematyki oneAPI, Biblioteka jądra matematyki, Biblioteka jądra, Biblioteka

Odniesienia

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *