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
- Лінійна алгебра
- Швидке перетворення Фур'є (ШПФ)
- Векторна математика
- Прямі та ітераційні розріджені розв’язувачі
- Генератори випадкових чисел
Для DPC++ на CPU та GPU (додаткову інформацію див. у Intel® oneAPI Math Kernel Library — Data Parallel C++ Developer Reference.)
- Лінійна алгебра
- БЛАС
- Вибрані функції Sparse BLAS
- Вибрані функції LAPACK
- Швидке перетворення Фур'є (ШПФ)
- 1D, 2D та 3D
- Генератори випадкових чисел
- Вибраний функціонал
- Вибрані функції Vector Math
Перш ніж почати
Відвідайте сторінку приміток до випуску, щоб переглянути відомі проблеми та найновішу інформацію.
Відвідайте сторінку системних вимог Intel® oneAPI Math Kernel Library, щоб дізнатися про системні вимоги.
Відвідайте Початок роботи з компілятором Intel® oneAPI DPC++/C++, щоб дізнатися про вимоги до компілятора DPC++.
Крок 1: інсталюйте бібліотеку Intel® oneAPI Math Kernel Library
Завантажте бібліотеку Intel® oneAPI Math Kernel Library із базового набору інструментів Intel® oneAPI.
Щодо дистрибутивів Python дивіться Інсталяція дистрибутива Intel® для Python* і бібліотек Intel® Performance Libraries з pip і PyPI.
Для дистрибутивів Python зверніть увагу на таке обмеження:
Пакет oneMKL devel (mkl-devel) для розповсюдження PIP у Linux* і macOS* не надає символічних посилань на динамічні бібліотеки (додаткову інформацію див. у випуску PIP GitHub №5919).
У разі динамічного або єдиного динамічного зв’язування бібліотеки з пакетом розробки oneMKL (для отримання додаткової інформації див. 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 через повні назви та версії бібліотек: 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 Developer Reference – Мова Fortran
Довідник розробника oneMKL – мова DPC++
- Довідник розробника (у форматах C, Fortran і DPC++) містить детальні описи функцій та інтерфейсів для всіх доменів бібліотек.
Intel® oneAPI Math Kernel Library Function Finding Advisor
- Використовуйте порадник із пошуку функцій 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,–end-group -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 _core_dll.lib tbb .lib sycl.lib OpenCL.lib
Для інтерфейсів C/Fortran із підтримкою розвантаження OpenMP
Використовуйте інтерфейси 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
Цей документ містить оверview, модель використання та результати тестування генераторів випадкових чисел, включених до VS.
Intel® oneAPI Math Kernel Library Vector Statistics Random Number Generator Дані продуктивності
Дані про продуктивність, отримані за допомогою генератора випадкових чисел (RNG) векторної статистики (VS), включаючи одиницю виміру CPE (такти на елемент), базові генератори випадкових чисел (BRNG), генератори згенерованого розподілу та довжину згенерованих векторів.
Intel® oneAPI Math Kernel Library Vector Mathematics Performance and Accuracy Data
Векторна математика (VM) обчислює елементарні функції на векторних аргументах. VM містить набір високооптимізованих реалізацій обчислювально дорогих основних математичних функцій (степеневих, тригонометричних, експоненціальних, гіперболічних та інших), які працюють з векторами.
Примітки щодо застосування для підсумкової статистики бібліотеки ядра Math Intel® oneAPI
Підсумкова статистика є підкомпонентом домену векторної статистики бібліотеки ядра Math Intel® oneAPI. Summary Statistics надає вам функції для початкового статистичного аналізу та пропонує рішення для паралельної обробки багатовимірних наборів даних.
LAPACK Прampлес
Цей документ містить код напрampфайли для підпрограм oneMKL LAPACK (Linear Algebra PACKage).
Повідомлення та застереження
Програмне забезпечення та робочі навантаження, що використовуються в тестах продуктивності, могли бути оптимізовані для продуктивності лише на мікропроцесорах Intel. Тести продуктивності, такі як SYSmark і MobileMark, вимірюються за допомогою конкретних комп’ютерних систем, компонентів, програмного забезпечення, операцій і функцій. Будь-яка зміна будь-якого з цих факторів може призвести до зміни результатів. Вам слід ознайомитися з іншою інформацією та тестами продуктивності, щоб допомогти вам у повній оцінці запланованих покупок, включаючи ефективність цього продукту в поєднанні з іншими продуктами. Для більш повної інформації відвідайте www.intel.com/benchmarks.
Технології Intel можуть вимагати активації апаратного, програмного забезпечення або послуги.
Жоден продукт чи компонент не може бути абсолютно безпечним.
Ваші витрати та результати можуть відрізнятися.
© Корпорація Intel. Intel, логотип Intel та інші знаки Intel є товарними знаками корпорації Intel або її дочірніх компаній. Інші назви та бренди можуть бути визнані власністю інших.
Інформація про продукт і продуктивність
Продуктивність залежить від використання, конфігурації та інших факторів. Дізнайтесь більше на www.Intel.com/PerformanceIndex.
Редакція повідомлення №20201201
Цей документ не надає жодної ліцензії (явної чи неявної, судової або іншої) на будь-які права інтелектуальної власності.
Описані продукти можуть містити конструктивні дефекти або помилки, відомі як помилки, які можуть спричинити відхилення продукту від опублікованих специфікацій. Поточні характеристики помилок доступні за запитом.
Intel відмовляється від усіх явних і непрямих гарантій, включаючи, без обмежень, непрямі гарантії придатності для продажу, придатності для певної мети та непорушення прав, а також будь-які гарантії, що випливають із ходу роботи, поведінки чи використання в торгівлі.
Документи / Ресурси
![]() |
Intel oneAPI Math Kernel Library [pdfПосібник користувача oneAPI Math Kernel Library, Math Kernel Library, Kernel Library, Library |