intel oneAPI Math Kernel Library
Magsimula sa Intel® oneAPI Math Kernel Library
Tinutulungan ka ng Intel® oneAPI Math Kernel Library (oneMKL) na makamit ang maximum na performance gamit ang isang math computing library ng lubos na na-optimize, malawak na parallelized na mga gawain para sa CPU at GPU. Ang library ay may C at Fortran interface para sa karamihan ng mga routine sa CPU, at DPC++ interface para sa ilang routine sa parehong CPU at GPU. Makakahanap ka ng komprehensibong suporta para sa ilang mga operasyon sa matematika sa iba't ibang mga interface kabilang ang:
Para sa C at Fortran sa CPU
- Linear algebra
- Mabilis na Fourier Transforms (FFT)
- Vector math
- Direkta at umuulit na mga kalat-kalat na solver
- Mga generator ng random na numero
Para sa DPC++ sa CPU at GPU (Sumangguni sa Intel® oneAPI Math Kernel Library—Data Parallel C++ Developer Reference para sa higit pang mga detalye.)
- Linear algebra
- BLAS
- Napiling Sparse BLAS functionality
- Napiling paggana ng LAPACK
- Mabilis na Fourier Transforms (FFT)
- 1D, 2D, at 3D
- Mga generator ng random na numero
- Napiling pag-andar
- Napiling pag-andar ng Vector Math
Bago Ka Magsimula
Bisitahin ang pahina ng Mga Tala sa Paglabas para sa Mga Kilalang Isyu at pinaka-up-to-date na impormasyon.
Bisitahin ang pahina ng Intel® oneAPI Math Kernel Library System Requirements para sa mga kinakailangan ng system.
Bisitahin ang Magsimula sa Intel® oneAPI DPC++/C++ Compiler para sa mga kinakailangan ng DPC++ Compiler.
Hakbang 1: I-install ang Intel® oneAPI Math Kernel Library
I-download ang Intel® oneAPI Math Kernel Library mula sa Intel® oneAPI Base Toolkit.
Para sa mga distribusyon ng Python, sumangguni sa Pag-install ng Intel® Distribution para sa Python* at Intel® Performance Libraries na may pip at PyPI.
Para sa mga pamamahagi ng Python, tandaan ang sumusunod na limitasyon:
Ang oneMKL devel package (mkl-devel) para sa PIP distribution sa Linux* at macOS* ay hindi nagbibigay ng mga dynamic na library symlinks (para sa higit pang impormasyon tingnan ang PIP GitHub issue #5919).
Sa kaso ng dynamic o solong dynamic na library na nagli-link sa oneMKL devel package (para sa higit pang impormasyon tingnan ang oneMKL Link Line Advisor ) dapat mong baguhin ang link line na may mga full name at bersyon ng oneMKL library.
Sumangguni sa Intel® oneAPI Math Kernel Library at pkg-config tool para sa impormasyon tungkol sa pag-compile at pag-link gamit ang pkg-config tool.
oneMKL link line halampgamit ang oneAPI Base Toolkit sa pamamagitan ng mga symlink:
- Linux:
icc app.obj -L${MKLROOT}/lib/intel64 -lmkl_intel_lp64-lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl - Mac OS:
icc app.obj -L${MKLROOT}/lib -Wl,-rpath,${MKLROOT}/lib-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread
-lm -ldl
Ang oneMKL link line example na may PIP devel package sa pamamagitan ng mga library buong pangalan at bersyon: 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 - Mac OS:
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
Hakbang 2: Pumili ng Function o Routine
Pumili ng function o routine mula sa oneMKL na pinakaangkop para sa iyong problema. Gamitin ang mga mapagkukunang ito:
Link ng Mapagkukunan: Mga Nilalaman
oneMKL Developer Guide para sa Linux*
oneMKL Developer Guide para sa Windows*
oneMKL Developer Guide para sa macOS*
Ang Gabay sa Developer ay naglalaman ng detalyadong impormasyon sa ilang paksa kabilang ang:
- Pag-compile at pag-link ng mga application
- Pagbuo ng mga custom na DLL
- Threading
- Pamamahala ng Memorya
OneMKL Developer Reference – C
Language oneMKL Developer Reference – Fortran Language
OneMKL Developer Reference – DPC++ Language
- Ang Reference ng Developer (sa mga format na C, Fortran, at DPC++) ay naglalaman ng mga detalyadong paglalarawan ng mga function at interface para sa lahat ng domain ng library.
Intel® oneAPI Math Kernel Library Function Finding Advisor
- Gamitin ang LAPACK Function Finding Advisor upang tuklasin ang mga gawain ng LAPACK na kapaki-pakinabang para sa isang partikular na problema. Para kay example, kung tinukoy mo ang isang operasyon bilang:
- Uri ng routine: Computational
- Problema sa computational: Orthogonal factorization
- Uri ng matrix: Pangkalahatan
- Operasyon: Magsagawa ng QR factorization
Hakbang 3: I-link ang Iyong Code
Gamitin ang oneMKL Link Line Advisor para i-configure ang link command ayon sa mga feature ng iyong program.
Ilang limitasyon at karagdagang kinakailangan:
Sinusuportahan lang ng Intel® oneAPI Math Kernel Library para sa DPC++ gamit ang mkl_intel_ilp64 interface library at sequential o TBB threading.
Para sa mga interface ng DPC++ na may static na pag-link sa Linux
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
Para kay example, pagbuo/statically linking main.cpp na may ilp64 interface at TBB threading:
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
Para sa mga interface ng DPC++ na may dynamic na pag-link sa Linux
icpx -fsycl -DMKL_ILP64 -L$ {MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_ -lmkl_core -lsycl -lOpenCL -lpthread -ldl -lm
Para kay example, pagbuo/dynamic na pag-link ng main.cpp na may mga interface ng ilp64 at TBB threading:
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
Para sa mga interface ng DPC++ na may static na pag-link sa 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
Para kay example, pagbuo/statically linking main.cpp na may ilp64 interface at TBB threading:
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_core mkl_tbb_thread.lib sy mkcl .lib OpenCL.lib tbb.lib
Para sa mga interface ng DPC++ na may dynamic na pag-link sa 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
Para kay example, pagbuo/dynamic na pag-link ng main.cpp na may mga interface ng ilp64 at TBB threading:
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.libth mkl_tbb_libth mkl_tbb_libth .lib sycl.lib OpenCL.lib
Para sa C/Fortran Interface na may OpenMP Offload Support
Gamitin ang mga interface ng C/Fotran Intel® oneAPI Math Kernel Library na may feature na OpenMP offload sa GPU.
Tingnan ang C OpenMP Offload Developer Guide para sa higit pang mga detalye tungkol sa feature na ito.
Idagdag ang mga sumusunod na pagbabago sa C/Fortran oneMKL compile/link lines para paganahin ang OpenMP offload feature sa GPU:
- Karagdagang mga pagpipilian sa pag-compile/link: -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl
- Karagdagang oneMKL library: oneMKL DPC++ library
Para kay example, pagbuo/ dynamic na nagli-link ng main.cpp sa Linux na may mga interface ng ilp64 at OpenMP threading:
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
Para sa lahat ng iba pang sinusuportahang configuration, tingnan ang Intel® oneAPI Math Kernel Library Link Line Advisor.
Maghanap ng Higit Pa
Mapagkukunan: Paglalarawan
Tutorial: Paggamit ng Intel® oneAPI Math Kernel Library para sa Matrix Multiplication:
- Tutorial – C Language
- Tutorial – Fortran Language
Ang tutorial na ito ay nagpapakita kung paano mo magagamit ang oneMKL upang i-multiply ang mga matrice, sukatin ang pagganap ng matrix multiplication, at kontrolin ang threading.
Intel® oneAPI Math Kernel Library (oneMKL) Release Notes control threading.
Ang mga tala sa paglabas ay naglalaman ng impormasyong partikular sa pinakabagong release ng oneMKL kasama ang mga bago at binagong feature. Kasama sa mga tala sa paglabas ang mga link sa pangunahing mapagkukunan ng impormasyon sa online na nauugnay sa paglabas. Makakahanap ka rin ng impormasyon sa:
- Ano ang bago sa paglabas
- Mga nilalaman ng produkto
- Pagkuha ng teknikal na suporta
- Mga kahulugan ng lisensya
Intel® oneAPI Math Kernel Library
Ang pahina ng produkto ng Intel® oneAPI Math Kernel Library (oneMKL). Tingnan ang pahinang ito para sa suporta at online na dokumentasyon.
Intel® oneAPI Math Kernel Library Cookbook
Ang Intel® oneAPI Math Kernel Library ay naglalaman ng maraming mga gawain upang matulungan kang malutas ang iba't ibang mga problema sa numero, tulad ng pag-multiply ng mga matrice, paglutas ng isang sistema ng mga equation, at pagsasagawa ng Fourier transform.
Mga Tala para sa Intel® oneAPI Math Kernel Library Vector Statistics
Kasama sa dokumentong ito ang isang overview, isang modelo ng paggamit at mga resulta ng pagsubok ng mga generator ng random na numero na kasama sa VS.
Intel® oneAPI Math Kernel Library Vector Statistics Random Number Generator Data Performance
Data ng performance na nakuha gamit ang vector statistics (VS) random number generator (RNG) kabilang ang CPE (clock per element) unit of measure, basic random number generators (BRNG), generated distribution generators, at haba ng mga nabuong vectors.
Intel® oneAPI Math Kernel Library Vector Mathematics Performance at Accuracy Data
Ang Vector Mathematics (VM) ay nagku-compute ng mga elementary function sa mga argumento ng vector. Kasama sa VM ang isang hanay ng lubos na na-optimize na mga pagpapatupad ng computationally mahal na mga core mathematical function (power, trigonometric, exponential, hyperbolic, at iba pa) na gumagana sa mga vector.
Mga Tala ng Application para sa Intel® oneAPI Math Kernel Library Summary Statistics
Ang Summary Statistics ay isang subcomponent ng Vector Statistics domain ng Intel® oneAPI Math Kernel Library. Binibigyan ka ng Summary Statistics ng mga function para sa paunang pagsusuri sa istatistika, at nag-aalok ng mga solusyon para sa parallel na pagproseso ng mga multi-dimensional na dataset.
LAPACK Halamples
Ang dokumentong ito ay nagbibigay ng code examples para sa isang MKL LAPACK (Linear Algebra PACKage) na mga gawain.
Mga Paunawa at Disclaimer
Ang software at mga workload na ginamit sa mga pagsubok sa pagganap ay maaaring na-optimize para sa pagganap lamang sa mga microprocessor ng Intel. Ang mga pagsubok sa pagganap, gaya ng SYSmark at MobileMark, ay sinusukat gamit ang mga partikular na sistema ng computer, mga bahagi, software, mga operasyon at mga function. Ang anumang pagbabago sa alinman sa mga salik na iyon ay maaaring maging sanhi ng pagkakaiba-iba ng mga resulta. Dapat kang kumunsulta sa iba pang impormasyon at mga pagsubok sa pagganap upang matulungan kang ganap na masuri ang iyong mga pinag-isipang pagbili, kabilang ang pagganap ng produktong iyon kapag pinagsama sa iba pang mga produkto. Para sa mas kumpletong impormasyon bisitahin ang www.intel.com/benchmarks.
Ang mga teknolohiyang Intel ay maaaring mangailangan ng pag-activate ng hardware, software o serbisyo.
Walang produkto o bahagi ang maaaring maging ganap na ligtas.
Ang iyong mga gastos at resulta ay maaaring magkakaiba.
© Intel Corporation. Ang Intel, ang logo ng Intel, at iba pang mga marka ng Intel ay mga trademark ng Intel Corporation o mga subsidiary nito. Maaaring i-claim ang ibang mga pangalan at brand bilang pag-aari ng iba.
Impormasyon sa Produkto at Pagganap
Nag-iiba ang pagganap ayon sa paggamit, pagsasaayos at iba pang mga salik. Matuto pa sa www.Intel.com/PerformanceIndex.
Notice revision #20201201
Walang lisensya (ipahayag o ipinahiwatig, sa pamamagitan ng estoppel o kung hindi man) sa anumang mga karapatan sa intelektwal na ari-arian ang ibinibigay ng dokumentong ito.
Ang mga produktong inilarawan ay maaaring naglalaman ng mga depekto sa disenyo o mga error na kilala bilang errata na maaaring maging sanhi ng paglihis ng produkto mula sa mga nai-publish na mga detalye. Available ang kasalukuyang characterized errata kapag hiniling.
Tinatanggihan ng Intel ang lahat ng ipinahayag at ipinahiwatig na mga warranty, kabilang ang walang limitasyon, ang mga ipinahiwatig na warranty ng kakayahang maikalakal, pagiging angkop para sa isang partikular na layunin, at hindi paglabag, pati na rin ang anumang warranty na nagmumula sa kurso ng pagganap, kurso ng pakikitungo, o paggamit sa kalakalan.
Mga Dokumento / Mga Mapagkukunan
![]() |
intel oneAPI Math Kernel Library [pdf] Gabay sa Gumagamit oneAPI Math Kernel Library, Math Kernel Library, Kernel Library, Library |