intel-логотип

Библиотека математического ядра intel oneAPI

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

Начните работу с библиотекой ядра Intel® oneAPI Math

Библиотека ядра Intel® oneAPI Math Kernel (oneMKL) помогает достичь максимальной производительности благодаря библиотеке математических вычислений, состоящей из высокооптимизированных, тщательно распараллеленных подпрограмм для ЦП и ГП. Библиотека имеет интерфейсы C и Fortran для большинства подпрограмм на ЦП и интерфейсы DPC++ для некоторых подпрограмм как на ЦП, так и на ГП. Вы можете найти всестороннюю поддержку нескольких математических операций в различных интерфейсах, включая:

Для C и Fortran на процессоре

  • Линейная алгебра
  • Быстрое преобразование Фурье (БПФ)
  • Векторная математика
  • Прямые и итерационные разреженные решатели
  • Генераторы случайных чисел

Для DPC++ на ЦП и ГП (дополнительные сведения см. в библиотеке Intel® oneAPI Math Kernel Library — Data Parallel C++ Developer Reference).

  • Линейная алгебра
    • БЛАС
    • Выбранная функциональность Sparse BLAS
    • Выбранная функциональность LAPACK
  • Быстрое преобразование Фурье (БПФ)
    • 1D, 2D и 3D
  • Генераторы случайных чисел
    • Выбранная функциональность
  • Отдельные функции векторной математики

Прежде чем начать
Посетите страницу «Примечания к выпуску», чтобы узнать об известных проблемах и самой последней информации.
Посетите страницу системных требований Intel® oneAPI Math Kernel Library для ознакомления с системными требованиями.
Посетите страницу Начало работы с компилятором Intel® oneAPI DPC++/C++ для требований к компилятору DPC++.

Шаг 1. Установите библиотеку ядра Intel® oneAPI Math
Загрузите библиотеку ядра Intel® oneAPI Math из базового набора инструментов Intel® oneAPI.
Информацию о дистрибутивах Python см. в разделе Установка дистрибутива Intel® для Python* и библиотек производительности Intel® с помощью pip и PyPI.
Для дистрибутивов Python обратите внимание на следующее ограничение:
Пакет oneMKL devel (mkl-devel) для распространения PIP в Linux* и macOS* не предоставляет символические ссылки динамических библиотек (дополнительную информацию см. в выпуске PIP GitHub № 5919).
В случае связывания динамической или одиночной динамической библиотеки с пакетом oneMKL devel (для получения дополнительной информации см. OneMKL Link Line Advisor) вы должны изменить строку ссылки с полными именами и версиями библиотек oneMKL.
Обратитесь к библиотеке ядра Intel® oneAPI Math и инструменту pkg-config для получения информации о компиляции и компоновке с помощью инструмента pkg-config.
линия связи oneMKL exampфайл с базовым набором инструментов oneAPI через символические ссылки:

  • Линукс:
    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
    -лм -лдл
    Линия связи oneMKL exampФайл с пакетом разработки 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 -лм -лдл
  • 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

  • Используйте советник по поиску функций LAPACK, чтобы изучить подпрограммы LAPACK, полезные для решения конкретной проблемы. Для бывшегоample, если вы укажете операцию как:
    • Тип процедуры: вычислительная
    • Вычислительная задача: ортогональная факторизация
    • Тип матрицы: Общий
    • Операция: выполнить QR-факторизацию

Шаг 3: Свяжите свой код
Используйте oneMKL Link Line Advisor, чтобы настроить команду связи в соответствии с особенностями вашей программы.
Некоторые ограничения и дополнительные требования:
Библиотека ядра Intel® oneAPI Math Kernel для 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 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 для умножения матриц:

  • Учебное пособие — Язык C
  • Учебное пособие – Язык Фортран

В этом руководстве показано, как можно использовать oneMKL для умножения матриц, измерения производительности умножения матриц и управления потоками.

Примечания к выпуску библиотеки Intel® oneAPI Math Kernel Library (oneMKL) управляют многопоточностью.
Примечания к выпуску содержат информацию, относящуюся к последнему выпуску oneMKL, включая новые и измененные функции. Примечания к выпуску содержат ссылки на основные информационные ресурсы в Интернете, связанные с выпуском. Вы также можете найти информацию о:

  • Что нового в релизе
  • Состав продукта
  • Получение технической поддержки
  • Определения лицензий

Библиотека ядра Intel® oneAPI Math
Страница продукта Intel® oneAPI Math Kernel Library (oneMKL). См. эту страницу для получения поддержки и онлайн-документации.

Справочник библиотеки Intel® oneAPI Math Kernel Library
Библиотека ядра Intel® oneAPI Math содержит множество подпрограмм, помогающих решать различные числовые задачи, такие как умножение матриц, решение системы уравнений и выполнение преобразования Фурье.

Примечания к векторной статистике библиотеки ядра Intel® oneAPI Math
Этот документ включает болееview, модель использования и результаты тестирования генераторов случайных чисел, входящих в состав VS.

Intel® oneAPI Math Kernel Library Векторная статистика Генератор случайных чисел Данные о производительности
Данные о производительности, полученные с использованием генератора случайных чисел (RNG) векторной статистики (VS), включая единицу измерения CPE (тактов на элемент), базовые генераторы случайных чисел (BRNG), сгенерированные генераторы распределения и длину сгенерированных векторов.

Intel® oneAPI Math Kernel Library Данные о производительности и точности векторной математики
Векторная математика (ВМ) вычисляет элементарные функции по векторным аргументам. VM включает в себя набор высокооптимизированных реализаций основных математических функций, требующих значительных вычислительных ресурсов (степенных, тригонометрических, экспоненциальных, гиперболических и других), которые работают с векторами.

Примечания по применению для Intel® oneAPI Math Kernel Library Сводная статистика
Суммарная статистика — это подкомпонент области векторной статистики библиотеки ядра Intel® oneAPI Math. Суммарная статистика предоставляет функции для начального статистического анализа и предлагает решения для параллельной обработки многомерных наборов данных.

ЛАПАК Exampле
Этот документ содержит код exampфайлы для подпрограмм oneMKL LAPACK (Linear Algebra PACKage).

Уведомления и отказ от ответственности
Программное обеспечение и рабочие нагрузки, использованные в тестах производительности, могли быть оптимизированы для производительности только на микропроцессорах Intel. Тесты производительности, такие как SYSmark и MobileMark, измеряются с использованием конкретных компьютерных систем, компонентов, программного обеспечения, операций и функций. Любое изменение любого из этих факторов может привести к изменению результатов. Вам следует ознакомиться с другой информацией и тестами производительности, чтобы помочь вам в полной оценке ваших предполагаемых покупок, включая производительность этого продукта в сочетании с другими продуктами. Для получения более полной информации посетите www.intel.com/benchmarks.
Для технологий Intel может потребоваться активированное оборудование, программное обеспечение или сервис.
Ни один продукт или компонент не может быть абсолютно безопасным.
Ваши затраты и результаты могут отличаться.
© Корпорация Intel. Intel, логотип Intel и другие товарные знаки Intel являются товарными знаками корпорации Intel или ее дочерних компаний. Другие имена и торговые марки могут быть заявлены как собственность других лиц.

Информация о продукте и производительности
Производительность зависит от использования, конфигурации и других факторов. Узнайте больше на www.Intel.com/PerformanceIndex.
Уведомление о редакции № 20201201
Настоящий документ не предоставляет никакой лицензии (явной или подразумеваемой, посредством лишения права возражения или иным образом) на какие-либо права интеллектуальной собственности.
Описанные продукты могут содержать дефекты конструкции или ошибки, известные как errata, которые могут привести к отклонению продукта от опубликованных спецификаций. Текущие охарактеризованные errata доступны по запросу.
Intel отказывается от всех явных и подразумеваемых гарантий, включая, помимо прочего, подразумеваемые гарантии товарного состояния, пригодности для определенной цели и ненарушения прав, а также любые гарантии, вытекающие из хода работы, делового оборота или использования в торговле.

Документы/Ресурсы

Библиотека математического ядра intel oneAPI [pdf] Руководство пользователя
Библиотека математического ядра oneAPI, Библиотека математического ядра, Библиотека ядра, Библиотека

Ссылки

Оставьте комментарий

Ваш адрес электронной почты не будет опубликован. Обязательные поля отмечены *