英特尔徽标

英特尔 oneAPI 数学核心函数库

intel-oneAPI-数学-内核-库-产品-图像

开始使用英特尔® oneAPI 数学核心函数库

英特尔® oneAPI 数学核心函数库 (oneMKL) 通过高度优化、广泛并行化的 CPU 和 GPU 例程的数学计算库帮助您实现最佳性能。 该库为 CPU 上的大多数例程提供了 C 和 Fortran 接口,为 CPU 和 GPU 上的一些例程提供了 DPC++ 接口。 您可以在各种界面中找到对多种数学运算的全面支持,包括:

对于 CPU 上的 C 和 Fortran

  • 线性代数
  • 快速傅立叶变换 (FFT)
  • 矢量数学
  • 直接和迭代稀疏求解器
  • 随机数生成器

对于 CPU 和 GPU 上的 DPC++(有关更多详细信息,请参阅英特尔® oneAPI 数学核心库 — 数据并行 C++ 开发人员参考。)

  • 线性代数
    • 布拉斯
    • 选定的稀疏 BLAS 功能
    • 选定的 LAPACK 功能
  • 快速傅立叶变换 (FFT)
    • 1D、2D 和 3D
  • 随机数生成器
    • 选定的功能
  • 选定的矢量数学功能

开始之前
访问发行说明页面了解已知问题和最新信息。
访问英特尔® oneAPI 数学核心函数库系统要求页面了解系统要求。
访问英特尔® oneAPI DPC++/C++ 编译器入门了解 DPC++ 编译器要求。

第 1 步:安装英特尔® oneAPI 数学核心函数库
从英特尔® oneAPI 基础工具包下载英特尔® oneAPI 数学核心函数库。
对于 Python 发行版,请参阅使用 pip 和 PyPI 安装适用于 Python* 的英特尔® 发行版和英特尔® 性能库。
对于 Python 发行版,请注意以下限制:
用于 Linux* 和 macOS* 上 PIP 分发的 oneMKL 开发包 (mkl-devel) 不提供动态库符号链接(有关更多信息,请参阅 PIP GitHub 问题 #5919)。
对于与 oneMKL 开发包链接的动态库或单个动态库(有关更多信息,请参阅 oneMKL 链接线顾问),您必须使用 oneMKL 库全名和版本修改链接线。
有关使用 pkg-config 工具进行编译和链接的信息,请参阅英特尔® oneAPI 数学核心函数库和 pkg-config 工具。
oneMKL链接线examp通过符号链接与 oneAPI 基础工具包一起使用:

  • Linux:
    icc app.obj -L${MKLROOT}/lib/intel64 -lmkl_intel_lp64-lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl
  • 苹果系统:
    icc app.obj -L${MKLROOT}/lib -Wl,-rpath,${MKLROOT}/lib-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread
    -lm -低密度脂蛋白
    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 -lm -低密度脂蛋白
  • 苹果系统:
    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 中选择最适合您的问题的函数或例程。 使用这些资源:

资源链接:目录

适用于 Linux* 的 oneMKL 开发人员指南
适用于 Windows 的 oneMKL 开发人员指南*
适用于 macOS* 的 oneMKL 开发人员指南

开发人员指南包含有关多个主题的详细信息,包括:

  • 编译和链接应用程序
  • 构建自定义 DLL
  • 线程
  • 内存管理

oneMKL 开发人员参考 – C
语言 oneMKL 开发人员参考 – Fortran 语言
oneMKL 开发者参考 – DPC++ 语言

  • 开发人员参考(C、Fortran 和 DPC++ 格式)包含所有库域的函数和接口的详细描述。

英特尔® oneAPI 数学核心函数库函数查找顾问

  • 使用 LAPACK Function Finding Advisor 探索对特定问题有用的 LAPACK 例程。 对于前ample,如果您将操作指定为:
    • 例程类型:计算
    • 计算问题:正交因式分解
    • 矩阵类型:通用
    • 操作:执行QR分解

第 3 步:链接您的代码
使用 oneMKL Link Line Advisor 根据您的程序功能配置链接命令。
一些限制和附加要求:
面向 DPC++ 的英特尔® oneAPI 数学核心函数库仅支持使用 mkl_intel_ilp64 接口库和顺序或 TBB 线程。

对于在 Linux 上具有静态链接的 DPC++ 接口
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
例如amp文件,构建/静态链接 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,–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

对于在 Linux 上具有动态链接的 DPC++ 接口
icpx -fsycl -DMKL_ILP64 -L$ {MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_ -lmkl_core -lsycl -lOpenCL -lpthread -ldl -lm
例如amp文件,构建/动态链接 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

对于 Windows 上具有静态链接的 DPC++ 接口
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
例如amp文件,构建/静态链接 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

对于 Windows 上具有动态链接的 DPC++ 接口
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
例如amp文件,构建/动态链接 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

对于具有 OpenMP 卸载支持的 C/Fortran 接口
将 C/Fotran 英特尔® oneAPI 数学内核库接口与 OpenMP 卸载功能一起使用到 GPU。
有关此功能的更多详细信息,请参阅 C OpenMP 卸载开发人员指南。
将以下更改添加到 C/Fortran oneMKL 编译/链接行以启用 GPU 的 OpenMP 卸载功能:

  • 其他编译/链接选项:-fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl
  • 额外的oneMKL库:oneMKL DPC++库

例如amp文件,使用 ilp64 接口和 OpenMP 线程在 Linux 上构建/动态链接 main.cpp:
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
对于所有其他受支持的配置,请参阅英特尔® oneAPI 数学核心函数库链接线顾问。

查找更多

资源:描述

教程:使用英特尔® oneAPI 数学核心函数库进行矩阵乘法:

  • 教程 - C 语言
  • 教程 – Fortran 语言

本教程演示如何使用 oneMKL 乘以矩阵、测量矩阵乘法的性能以及控制线程。

英特尔® oneAPI 数学核心函数库 (oneMKL) 发行说明控制线程。
发行说明包含特定于最新版本 oneMKL 的信息,包括新增和更改的功能。 发行说明包括指向与发行相关的主要在线信息资源的链接。 您还可以找到以下信息:

  • 发行版中的新功能
  • 产品内容
  • 获得技术支持
  • 许可证定义

英特尔® oneAPI 数学核心函数库
英特尔® oneAPI 数学核心函数库 (oneMKL) 产品页面。 请参阅此页面以获取支持和在线文档。

英特尔® oneAPI 数学核心函数库指南
英特尔® oneAPI 数学核心函数库包含许多例程,可帮助您解决各种数值问题,例如乘法矩阵、求解方程组和执行傅里叶变换。

英特尔® oneAPI 数学核心函数库矢量统计说明
本文档包括一个view,VS自带的随机数生成器的使用模型和测试结果。

英特尔® oneAPI 数学核心函数库向量统计随机数生成器性能数据
使用向量统计 (VS) 随机数生成器 (RNG) 获得的性能数据,包括 CPE(每个元素的时钟数)度量单位、基本随机数生成器 (BRNG)、生成的分布生成器和生成的向量的长度。

英特尔® oneAPI 数学核心函数库矢量数学性能和精度数据
向量数学 (VM) 计算向量参数的初等函数。 VM 包括一组对向量进行运算的计算量大的核心数学函数(幂函数、三角函数、指数函数、双曲线函数等)的高度优化实现。

英特尔® oneAPI 数学核心函数库应用说明摘要统计
摘要统计是英特尔® oneAPI 数学核心函数库矢量统计域的一个子组件。 Summary Statistics 为您提供初步统计分析的功能,并为多维数据集的并行处理提供解决方案。

拉帕克Examp莱斯
本文档提供代码 examponeMKL LAPACK(线性代数包)例程的文件。

声明和免责声明
性能测试中使用的软件和工作负载可能仅针对英特尔微处理器的性能进行了优化。 SYSmark 和 MobileMark 等性能测试是使用特定的计算机系统、组件、软件、操作和功能进行测量的。 任何这些因素的任何变化都可能导致结果发生变化。 您应该查阅其他信息和性能测试,以帮助您全面评估您的预期购买,包括该产品与其他产品结合使用时的性能。 如需更完整的信息,请访问 www.intel.com/benchmarks.
英特尔技术可能需要启用硬件,软件或服务才能激活。
没有任何产品或组件是绝对安全的。
您的费用和结果可能会有所不同。
© 英特尔公司。 英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。 其他名称和品牌可能会被视为他人的财产。

产品和性能信息
性能因使用、配置和其他因素而异。 了解更多信息 www.Intel.com/PerformanceIndex.
通知修订 #20201201
本文件不授予任何知识产权许可(无论是明示的、暗示的、禁止反言的还是其他方式)。
所述产品可能包含设计缺陷或错误(称为勘误表),这可能导致产品与已发布的规格不符。最新勘误表可应要求提供。
英特尔否认所有明示和默示保证,包括但不限于适销性、特定用途适用性和不侵权的默示保证,以及因履行过程、交易过程或贸易使用产生的任何保证。

文件/资源

英特尔 oneAPI 数学核心函数库 [pdf] 用户指南
oneAPI Math Kernel Library, Math Kernel Library, Kernel Library, 图书馆

参考

发表评论

您的电子邮件地址不会被公开。 必填字段已标记 *