英特爾標誌

英特爾 oneAPI 數學核心函數庫

intel-oneAPI-數學-內核-庫-產品-圖像

開始使用英特爾® oneAPI 數學核心函數庫

英特爾® oneAPI 數學核心函數庫 (oneMKL) 通過高度優化、廣泛並行化的 CPU 和 GPU 例程的數學計算庫幫助您實現最佳性能。 該庫為 CPU 上的大多數例程提供了 C 和 Fortran 接口,為 CPU 和 GPU 上的一些例程提供了 DPC++ 接口。 您可以在各種界面中找到對多種數學運算的全面支持,包括:

對於 CPU 上的 C 和 Fortran

  • 線性代數
  • 快速傅立葉變換 (FFT)
  • 矢量數學
  • 直接和迭代稀疏求解器
  • 隨機數產生器

對於 CPU 和 GPU 上的 DPC++(有關更多詳細信息,請參閱英特爾® oneAPI 數學核心庫 — 數據並行 C++ 開發人員參考。)

  • 線性代數
    • BLAS
    • 選定的稀疏 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_sycl -lmkl_intel_ilpXNUMX -注意

對於 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待定.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, 圖書館

參考

發表評論

您的電子郵件地址不會被公開。 必填欄位已標記 *