اینتل لوگو

کتابخانه هسته ریاضی intel oneAPI

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

با کتابخانه هسته ریاضی OneAPI Intel® شروع کنید

کتابخانه هسته ریاضی OneAPI Intel® (oneMKL) به شما کمک می کند با یک کتابخانه محاسباتی ریاضی از روال های موازی بسیار بهینه شده برای CPU و GPU به حداکثر عملکرد برسید. این کتابخانه دارای رابط های C و Fortran برای اکثر روتین های روی CPU، و رابط های DPC++ برای برخی روال ها در هر دو CPU و GPU است. شما می توانید پشتیبانی جامع برای چندین عملیات ریاضی در رابط های مختلف از جمله:

برای C و Fortran روی CPU

  • جبر خطی
  • تبدیل فوریه سریع (FFT)
  • ریاضی بردار
  • حل کننده های پراکنده مستقیم و تکراری
  • مولد اعداد تصادفی

برای DPC++ در CPU و GPU (برای جزئیات بیشتر به کتابخانه هسته ریاضی Intel® oneAPI— مرجع توسعه دهنده C++ داده موازی مراجعه کنید.)

  • جبر خطی
    • BLAS
    • عملکرد Sparse BLAS انتخاب شده است
    • عملکرد LAPACK انتخاب شده است
  • تبدیل فوریه سریع (FFT)
    • 1D، 2D و 3D
  • مولد اعداد تصادفی
    • عملکرد انتخاب شده
  • عملکرد ریاضی بردار انتخاب شده است

قبل از شروع
برای مسائل شناخته شده و به روزترین اطلاعات به صفحه یادداشت های انتشار مراجعه کنید.
برای اطلاع از نیازهای سیستم، از صفحه نیازمندیهای سیستم کتابخانه ریاضی هسته Intel® OneAPI دیدن کنید.
برای آشنایی با الزامات کامپایلر DPC++ از کامپایلر OneAPI Intel® OneAPI DPC++/C++ دیدن کنید.

مرحله 1: کتابخانه هسته ریاضی OneAPI Intel® را نصب کنید
کتابخانه Intel® oneAPI Math Kernel را از جعبه ابزار پایه Intel® oneAPI دانلود کنید.
برای توزیع های Python، به نصب Intel® Distribution برای Python* و Intel® Performance Libraries با pip و PyPI مراجعه کنید.
برای توزیع های پایتون، به محدودیت زیر توجه کنید:
بسته توسعه‌دهنده oneMKL (mkl-devel) برای توزیع PIP در لینوکس* و macOS* پیوندهای نمادین کتابخانه‌های پویا را ارائه نمی‌کند (برای اطلاعات بیشتر به شماره 5919 PIP GitHub مراجعه کنید).
در مورد پیوند کتابخانه پویا یا تک پویا با بسته توسعه‌دهنده oneMKL (برای اطلاعات بیشتر به مشاور خط لینک oneMKL مراجعه کنید) باید خط پیوند را با نام‌ها و نسخه‌های کامل کتابخانه‌های oneMKL تغییر دهید.
برای اطلاعات در مورد کامپایل و پیوند با ابزار pkg-config، به کتابخانه هسته ریاضی Intel® oneAPI و ابزار pkg-config مراجعه کنید.
خط پیوند oneMKL سابقampبا OneAPI Base Toolkit از طریق symlinks:

  • لینوکس:
    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 -ldl
    خط پیوند oneMKL سابقample با بسته توسعه PIP از طریق کتابخانه ها نام و نسخه کامل: لینوکس:
    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 -lm -ldl
  • سیستم عامل مکینتاش:
    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 برای لینوکس*
راهنمای برنامه نویس oneMKL برای ویندوز*
راهنمای برنامه نویس oneMKL برای macOS*

راهنمای توسعه‌دهنده حاوی اطلاعات دقیق در مورد چندین موضوع از جمله:

  • کامپایل و پیوند دادن برنامه ها
  • ساخت DLL های سفارشی
  • نخ زنی
  • مدیریت حافظه

مرجع توسعه دهنده oneMKL - C
مرجع توسعه دهنده زبان oneMKL – زبان فرترن
مرجع توسعه دهنده oneMKL – زبان DPC++

  • مرجع توسعه‌دهنده (در فرمت‌های C، Fortran و DPC++) حاوی توضیحات مفصلی از توابع و رابط‌ها برای همه حوزه‌های کتابخانه است.

مشاور یافتن عملکرد کتابخانه هسته ریاضی OneAPI Intel®

  • از LAPACK Function Finding Advisor برای بررسی روال های LAPACK که برای یک مشکل خاص مفید هستند استفاده کنید. برای مثالample، اگر عملیاتی را به صورت زیر مشخص کنید:
    • نوع روال: محاسباتی
    • مسئله محاسباتی: فاکتورسازی متعامد
    • نوع ماتریس: عمومی
    • عملیات: فاکتورسازی QR را انجام دهید

مرحله 3: کد خود را پیوند دهید
از OneMKL Link Line Advisor برای پیکربندی فرمان پیوند با توجه به ویژگی های برنامه خود استفاده کنید.
برخی محدودیت ها و الزامات اضافی:
Intel® oneAPI Math Kernel Library for DPC++ فقط از کتابخانه رابط mkl_intel_ilp64 و رشته های متوالی یا TBB پشتیبانی می کند.

برای رابط های 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
برای مثالample، ایجاد/پیوند استاتیکی main.cpp با رابط های ilp64 و 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

برای رابط های DPC++ با پیوند پویا در لینوکس
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 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 -bbblt -lOpenlplth -

برای رابط های 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
برای مثالample، ایجاد/پیوند استاتیکی main.cpp با رابط های ilp64 و 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 mkl_libcore symcl_th .lib OpenCL.lib tbb.lib

برای رابط های 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
برای مثالample، ایجاد/پیوند دینامیکی main.cpp با رابط های ilp64 و 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. .lib sycl.lib OpenCL.lib

برای رابط های C/Fortran با پشتیبانی OpenMP Offload
از رابط های C/Fotran Intel® oneAPI Math Kernel Library با ویژگی OpenMP Offload برای GPU استفاده کنید.
برای جزئیات بیشتر در مورد این ویژگی، به راهنمای برنامه‌نویس C OpenMP Offload مراجعه کنید.
تغییرات زیر را به خطوط کامپایل/لینک C/Fortran oneMKL اضافه کنید تا ویژگی OpenMP Offload به GPU فعال شود:

  • گزینه های کامپایل/پیوند اضافی: -fiopenmp -fopenmp-targets=spir64 -mllvm -vpo-paropt-use-raw-dev-ptr -fsycl
  • کتابخانه oneMKL اضافی: کتابخانه oneMKL DPC++

برای مثالample، ایجاد/ پیوند پویا main.cpp در لینوکس با رابط های 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 مراجعه کنید.

بیشتر پیدا کنید

منبع: توضیحات

آموزش: استفاده از کتابخانه هسته ریاضی OneAPI Intel® برای ضرب ماتریس:

  • آموزش – زبان سی
  • آموزش – زبان فرترن

این آموزش نشان می دهد که چگونه می توانید از oneMKL برای ضرب ماتریس ها، اندازه گیری عملکرد ضرب ماتریس و کنترل رشته استفاده کنید.

اینتل® OneAPI Math Kernel Library (oneMKL) Release Notes کنترل رشته.
یادداشت های انتشار حاوی اطلاعاتی خاص برای آخرین نسخه OneMKL از جمله ویژگی های جدید و تغییر یافته است. یادداشت‌های انتشار شامل پیوندهایی به منابع اطلاعاتی آنلاین اصلی مربوط به انتشار است. شما همچنین می توانید اطلاعاتی در مورد:

  • چه چیزی در نسخه جدید است
  • محتویات محصول
  • دریافت پشتیبانی فنی
  • تعاریف مجوز

کتابخانه هسته ریاضی OneAPI Intel®
صفحه محصول Intel® OneAPI Math Kernel Library (oneMKL). برای پشتیبانی و مستندات آنلاین به این صفحه مراجعه کنید.

کتاب آشپزی کتابخانه هسته ریاضی Intel® OneAPI
کتابخانه هسته ریاضی OneAPI Intel® شامل روال‌های زیادی است که به شما در حل مسائل عددی مختلف، مانند ضرب ماتریس‌ها، حل یک سیستم معادلات، و انجام تبدیل فوریه کمک می‌کند.

نکاتی برای آمار برداری Intel® OneAPI Math Kernel Library
این سند شامل یک اور استviewیک مدل استفاده و نتایج آزمایش مولدهای اعداد تصادفی موجود در VS.

Intel® oneAPI Math Kernel Library آمار بردار داده های عملکرد تولید کننده اعداد تصادفی
داده های عملکرد با استفاده از آمار برداری (VS) مولد اعداد تصادفی (RNG) شامل CPE (ساعت در هر عنصر)، واحد اندازه گیری، مولدهای اعداد تصادفی پایه (BRNG)، مولدهای توزیع تولید شده، و طول بردارهای تولید شده به دست آمد.

Intel® oneAPI Math Kernel Library اطلاعات عملکرد و دقت ریاضی بردار
ریاضیات برداری (VM) توابع ابتدایی را بر روی آرگومان های برداری محاسبه می کند. VM شامل مجموعه ای از پیاده سازی های بسیار بهینه شده از توابع ریاضی هسته ای گران قیمت محاسباتی (قدرت، مثلثاتی، نمایی، هذلولی و غیره) است که بر روی بردارها عمل می کنند.

یادداشت های کاربردی برای Intel® OneAPI ریاضی خلاصه آمار کتابخانه هسته
آمار خلاصه یک جزء فرعی از دامنه آمار برداری کتابخانه هسته ریاضی OneAPI Intel® است. آمار خلاصه توابعی را برای تجزیه و تحلیل آماری اولیه به شما ارائه می دهد و راه حل هایی را برای پردازش موازی مجموعه داده های چند بعدی ارائه می دهد.

LAPACK Examples
این سند کد ex را ارائه می دهدamples for oneMKL LAPACK (بسته جبر خطی) روال.

اطلاعیه ها و سلب مسئولیت
نرم افزار و بارهای کاری مورد استفاده در تست های عملکرد ممکن است فقط برای عملکرد در ریزپردازنده های اینتل بهینه شده باشند. تست‌های عملکرد، مانند SYSmark و MobileMark، با استفاده از سیستم‌های کامپیوتری، اجزا، نرم‌افزار، عملیات و عملکردهای خاص اندازه‌گیری می‌شوند. هرگونه تغییر در هر یک از این عوامل ممکن است باعث متفاوت شدن نتایج شود. برای کمک به ارزیابی کامل خریدهای مدنظرتان، از جمله عملکرد آن محصول در ترکیب با سایر محصولات، باید از سایر اطلاعات و آزمایش‌های عملکردی استفاده کنید. برای اطلاعات کاملتر مراجعه کنید www.intel.com/benchmarks.
فن آوری های اینتل ممکن است نیاز به فعال سازی سخت افزار ، نرم افزار یا سرویس داشته باشند.
هیچ محصول یا م componentلفه ای نمی تواند کاملاً ایمن باشد.
هزینه ها و نتایج شما ممکن است متفاوت باشد.
© شرکت اینتل. اینتل، لوگوی اینتل و سایر علائم اینتل علائم تجاری Intel Corporation یا شرکت های تابعه آن هستند. نام ها و مارک های دیگر ممکن است به عنوان دارایی دیگران ادعا شود.

اطلاعات محصول و عملکرد
عملکرد بر اساس استفاده، پیکربندی و سایر عوامل متفاوت است. بیشتر بدانید در www.Intel.com/PerformanceIndex.
اطلاعیه بازبینی شماره 20201201
هیچ مجوزی (به صورت صریح یا ضمنی، توسط estoppel یا غیره) برای هیچ گونه حقوق مالکیت معنوی توسط این سند اعطا نمی شود.
محصولات شرح داده شده ممکن است دارای ایرادات طراحی یا خطاهایی به نام خطا باشد که ممکن است باعث انحراف محصول از مشخصات منتشر شده شود. خطاهای مشخص شده فعلی در صورت درخواست در دسترس هستند.
اینتل تمام ضمانت‌های صریح و ضمنی، از جمله بدون محدودیت، ضمانت‌های ضمنی خرید و فروش، تناسب برای یک هدف خاص، و عدم نقض، و همچنین هر گونه ضمانت ناشی از عملکرد، دوره معامله یا استفاده در تجارت را سلب می‌کند.

اسناد / منابع

کتابخانه هسته ریاضی intel oneAPI [pdfراهنمای کاربر
کتابخانه هسته ریاضی oneAPI، کتابخانه هسته ریاضی، کتابخانه هسته، کتابخانه

مراجع

نظر بدهید

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی مشخص شده اند *