intel oneAPI Math Kernel Library
Започнете с Intel® oneAPI Math Kernel Library
Intel® oneAPI Math Kernel Library (oneMKL) ви помага да постигнете максимална производителност с математическа изчислителна библиотека от силно оптимизирани, екстензивно паралелизирани процедури за CPU и GPU. Библиотеката има C и Fortran интерфейси за повечето процедури на CPU и DPC++ интерфейси за някои програми както на CPU, така и на GPU. Можете да намерите цялостна поддръжка за няколко математически операции в различни интерфейси, включително:
За C и Fortran на CPU
- Линейна алгебра
- Бързи трансформации на Фурие (FFT)
- Векторна математика
- Директни и итеративни разредени решаващи средства
- Генератори на произволни числа
За DPC++ на CPU и GPU (Вижте Intel® oneAPI Math Kernel Library—Data Parallel C++ Developer Reference за повече подробности.)
- Линейна алгебра
- БЛАС
- Избрана Sparse BLAS функционалност
- Избрана функционалност на LAPACK
- Бързи трансформации на Фурие (FFT)
- 1D, 2D и 3D
- Генератори на произволни числа
- Избрана функционалност
- Избрана функционалност за векторна математика
Преди да започнете
Посетете страницата Бележки по изданието за известните проблеми и най-актуалната информация.
Посетете страницата със системни изисквания на Intel® oneAPI Math Kernel Library за системни изисквания.
Посетете Първи стъпки с компилатора Intel® oneAPI DPC++/C++ за изискванията на компилатора DPC++.
Стъпка 1: Инсталирайте Intel® oneAPI Math Kernel Library
Изтеглете Intel® oneAPI Math Kernel Library от Intel® oneAPI Base Toolkit.
За дистрибуции на Python вижте Инсталиране на Intel® дистрибуция за Python* и Intel® Performance Libraries с pip и PyPI.
За дистрибуции на Python имайте предвид следното ограничение:
Пакетът oneMKL devel (mkl-devel) за разпространение на PIP на Linux* и macOS* не предоставя символни връзки на динамични библиотеки (за повече информация вижте PIP GitHub проблем #5919).
В случай на динамично или единично динамично свързване на библиотека с oneMKL devel пакет (за повече информация вижте oneMKL Link Line Advisor ) трябва да промените линията за връзка с пълните имена и версии на библиотеките oneMKL.
Обърнете се към Intel® oneAPI Math Kernel Library и инструмента pkg-config за информация относно компилирането и свързването с инструмента pkg-config.
oneMKL връзка линия напрampфайл с oneAPI Base Toolkit чрез символни връзки:
- 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
Линията за връзка oneMKL напрampфайл с PIP devel пакет чрез пълни имена и версии на библиотеки: 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
Стъпка 2: Изберете функция или рутина
Изберете функция или рутина от oneMKL, която е най-подходяща за вашия проблем. Използвайте тези ресурси:
Връзка към ресурса: Съдържание
oneMKL Ръководство за разработчици за Linux*
oneMKL Ръководство за разработчици за Windows*
oneMKL Ръководство за разработчици за macOS*
Ръководството за разработчици съдържа подробна информация по няколко теми, включително:
- Компилиране и свързване на приложения
- Изграждане на персонализирани DLL файлове
- Нарязване на резба
- Управление на паметта
справка за разработчици на oneMKL – C
Език oneMKL Справочник за разработчици – език Fortran
oneMKL Справочник за разработчици – език DPC++
- Справочник за разработчици (във формати C, Fortran и DPC++) съдържа подробни описания на функциите и интерфейсите за всички библиотечни домейни.
Intel® oneAPI Math Kernel Library Съветник за намиране на функции
- Използвайте съветника за намиране на функция LAPACK, за да изследвате процедурите на LAPACK, които са полезни за определен проблем. Напримерample, ако посочите операция като:
- Тип рутина: Изчислителна
- Изчислителна задача: Ортогонална факторизация
- Тип на матрицата: Обща
- Операция: Извършете QR факторизация
Стъпка 3: Свържете вашия код
Използвайте oneMKL Link Line Advisor, за да конфигурирате командата за връзка според функциите на вашата програма.
Някои ограничения и допълнителни изисквания:
Intel® oneAPI Math Kernel Library за DPC++ поддържа само използването на интерфейсната библиотека mkl_intel_ilp64 и последователни или TBB нишки.
За DPC++ интерфейси със статично свързване на Linux
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 ${MKLROOT}/lib/intel64/libmkl_sycl.a -Wl,–начална група ${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
Напримерample, изграждане/статично свързване на main.cpp с интерфейси ilp64 и TBB нишки:
icpx -fsycl -fsycl-device-code-split=per_kernel -DMKL_ILP64 -I${MKLROOT}/include main.cpp $
{MKLROOT}/lib/intel64/libmkl_sycl.a -Wl,–начална група ${MKLROOT}/lib/intel64/
libmkl_intel_ilp64.a ${MKLROOT}/lib/intel64/libmkl_tbb_thread.a ${MKLROOT}/lib/intel64/
libmkl_core.a -Wl,–крайна група -L${TBBROOT}/lib/intel64/gcc4.8 -ltbb -lsycl -lOpenCL -lpthread -lm -ldl
За DPC++ интерфейси с динамично свързване на Linux
icpx -fsycl -DMKL_ILP64 -L$ {MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_ -lmkl_core -lsycl -lOpenCL -lpthread -ldl -lm
Напримерample, изграждане/динамично свързване на main.cpp с интерфейси ilp64 и 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
За DPC++ интерфейси със статично свързване в 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
Напримерample, изграждане/статично свързване на main.cpp с интерфейси ilp64 и 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
За DPC++ интерфейси с динамично свързване в 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
Напримерample, изграждане/динамично свързване на main.cpp с интерфейси ilp64 и 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
За C/Fortran интерфейси с OpenMP Offload поддръжка
Използвайте интерфейсите C/Fotran Intel® oneAPI Math Kernel Library с функция за разтоварване на OpenMP към GPU.
Вижте ръководството за разработчици на C OpenMP Offload за повече подробности относно тази функция.
Добавете следните промени към редовете за компилиране/свързване на C/Fortran oneMKL, за да активирате функцията за разтоварване на OpenMP към GPU:
- Допълнителни опции за компилиране/свързване: -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl
- Допълнителна oneMKL библиотека: oneMKL DPC++ библиотека
Напримерample, изграждане/динамично свързване на main.cpp на Linux с интерфейси ilp64 и 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
За всички останали поддържани конфигурации вижте Intel® oneAPI Math Kernel Library Link Line Advisor.
Намерете повече
Ресурс: Описание
Урок: Използване на Intel® oneAPI Math Kernel Library за матрично умножение:
- Урок – език C
- Урок – език Fortran
Този урок демонстрира как можете да използвате oneMKL за умножаване на матрици, измерване на производителността на умножението на матрици и контрол на нишката.
Бележки по изданието на Intel® oneAPI Math Kernel Library (oneMKL) контролират нишките.
Бележките по версията съдържат информация, специфична за най-новата версия на oneMKL, включително нови и променени функции. Бележките към изданието включват връзки към основните онлайн информационни ресурси, свързани с изданието. Можете също да намерите информация за:
- Какво е новото в изданието
- Съдържание на продукта
- Получаване на техническа поддръжка
- Дефиниции на лицензи
Intel® oneAPI Math Kernel Library
Продуктовата страница Intel® oneAPI Math Kernel Library (oneMKL). Вижте тази страница за поддръжка и онлайн документация.
Intel® oneAPI Math Kernel Library Cookbook
Intel® oneAPI Math Kernel Library съдържа много процедури, които да ви помогнат да решите различни числени проблеми, като умножаване на матрици, решаване на система от уравнения и извършване на преобразуване на Фурие.
Бележки за Intel® oneAPI Math Kernel Library Vector Statistics
Този документ включва овърview, модел на използване и резултати от тестване на генератори на произволни числа, включени във VS.
Intel® oneAPI Math Kernel Library Vector Statistics Random Number Generator Данни за производителността
Данни за производителността, получени с помощта на генератор на случайни числа (RNG) на векторна статистика (VS), включително мерна единица CPE (часовници на елемент), основни генератори на произволни числа (BRNG), генератори на генерирано разпределение и дължина на генерираните вектори.
Intel® oneAPI Math Kernel Library Vector Mathematics Производителност и данни за точност
Векторната математика (VM) изчислява елементарни функции върху векторни аргументи. VM включва набор от силно оптимизирани реализации на изчислително скъпи основни математически функции (степенни, тригонометрични, експоненциални, хиперболични и други), които работят с вектори.
Бележки за приложението за обобщена статистика на Intel® oneAPI Math Kernel Library
Обобщената статистика е подкомпонент на домейна Vector Statistics на Intel® oneAPI Math Kernel Library. Summary Statistics ви предоставя функции за първоначален статистически анализ и предлага решения за паралелна обработка на многоизмерни набори от данни.
LAPACK Exampлес
Този документ предоставя код напрampфайлове за oneMKL LAPACK (Linear Algebra PACKage) рутинни процедури.
Забележки и отказ от отговорност
Софтуерът и работните натоварвания, използвани в тестовете за производителност, може да са оптимизирани за производителност само на микропроцесори на Intel. Тестовете за производителност, като SYSmark и MobileMark, се измерват с помощта на специфични компютърни системи, компоненти, софтуер, операции и функции. Всяка промяна на някой от тези фактори може да доведе до различни резултати. Трябва да се консултирате с друга информация и тестове за ефективност, за да ви помогнат да оцените напълно планираните покупки, включително ефективността на този продукт, когато се комбинира с други продукти. За по-пълна информация посетете www.intel.com/benchmarks.
Технологиите на Intel може да изискват активиран хардуер, софтуер или услуга.
Никой продукт или компонент не може да бъде абсолютно сигурен.
Вашите разходи и резултати могат да варират.
© Intel Corporation. Intel, логото на Intel и други марки на Intel са търговски марки на Intel Corporation или нейните филиали. Други имена и марки могат да бъдат заявени като собственост на други.
Информация за продукта и ефективността
Производителността варира в зависимост от употребата, конфигурацията и други фактори. Научете повече на www.Intel.com/PerformanceIndex.
Ревизия на известието #20201201
Този документ не предоставя никакъв лиценз (изричен или подразбиращ се, чрез estoppel или по друг начин) за права върху интелектуална собственост.
Описаните продукти може да съдържат конструктивни дефекти или грешки, известни като errata, които могат да доведат до отклонение на продукта от публикуваните спецификации. Текущите характеризирани грешки са налични при поискване.
Intel отхвърля всички изрични и подразбиращи се гаранции, включително, без ограничение, подразбиращите се гаранции за продаваемост, пригодност за определена цел и ненарушение, както и всякакви гаранции, произтичащи от курса на изпълнение, курса на работа или употребата в търговията.
Документи / Ресурси
![]() |
intel oneAPI Math Kernel Library [pdf] Ръководство за потребителя oneAPI Math Kernel Library, Math Kernel Library, Kernel Library, Library |