인텔로고

인텔 oneAPI 수학 커널 라이브러리

intel-oneAPI-Math-Kernel-Library-제품-이미지

인텔® oneAPI 수학 커널 라이브러리 시작하기

Intel® oneAPI Math Kernel Library(oneMKL)는 CPU 및 GPU에 대해 고도로 최적화되고 광범위하게 병렬화된 루틴의 수학 컴퓨팅 라이브러리로 최대 성능을 달성하도록 도와줍니다. 라이브러리에는 CPU의 대부분의 루틴을 위한 C 및 Fortran 인터페이스와 CPU 및 GPU의 일부 루틴을 위한 DPC++ 인터페이스가 있습니다. 다음과 같은 다양한 인터페이스에서 여러 수학 연산에 대한 포괄적인 지원을 찾을 수 있습니다.

CPU의 C 및 Fortran의 경우

  • 선형대수학
  • 고속 푸리에 변환(FFT)
  • 벡터 수학
  • 직접 및 반복 스파스 솔버
  • 난수 생성기

CPU 및 GPU의 DPC++의 경우(자세한 내용은 인텔® oneAPI 수학 커널 라이브러리 - 데이터 병렬 C++ 개발자 참조를 참조하십시오.)

  • 선형대수학
    • 블라스
    • 선택된 Sparse BLAS 기능
    • 선택된 LAPACK 기능
  • 고속 푸리에 변환(FFT)
    • 1D, 2D 및 3D
  • 난수 생성기
    • 선택된 기능
  • 선택된 벡터 수학 기능

시작하기 전에
알려진 문제 및 최신 정보를 보려면 릴리스 정보 페이지를 방문하십시오.
시스템 요구 사항은 인텔® oneAPI 수학 커널 라이브러리 시스템 요구 사항 페이지를 참조하십시오.
DPC++ 컴파일러 요구 사항에 대한 인텔® oneAPI DPC++/C++ 컴파일러 시작하기를 방문하십시오.

1단계: 인텔® oneAPI 수학 커널 라이브러리 설치
인텔® oneAPI 기본 툴킷에서 인텔® oneAPI 수학 커널 라이브러리를 다운로드하십시오.
Python 배포의 경우 pip 및 PyPI를 사용하여 Python*용 인텔® 배포 및 인텔® 성능 라이브러리 설치를 참조하십시오.
Python 배포의 경우 다음 제한 사항에 유의하십시오.
Linux* 및 macOS*의 PIP 배포용 oneMKL devel 패키지(mkl-devel)는 동적 라이브러리 심볼릭 링크를 제공하지 않습니다(자세한 내용은 PIP GitHub 문제 #5919 참조).
oneMKL devel 패키지(자세한 내용은 oneMKL Link Line Advisor 참조)와 연결된 동적 또는 단일 동적 라이브러리의 경우 oneMKL 라이브러리 전체 이름 및 버전으로 링크 라인을 수정해야 합니다.
pkg-config 도구를 사용한 컴파일 및 링크에 대한 정보는 Intel® oneAPI Math Kernel Library 및 pkg-config 도구를 참조하십시오.
oneMKL 링크 라인 exampsymlink를 통해 oneAPI Base Toolkit으로 파일:

  • 리눅스:
    icc app.obj -L${MKLROOT}/lib/intel64 -lmkl_intel_lp64-lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl
  • 맥 OS :
    icc app.obj -L${MKLROOT}/lib -Wl,-rpath,${MKLROOT}/lib-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread
    -lm -ldl
    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 -ldl
  • 맥 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

2단계: 기능 또는 루틴 선택
oneMKL에서 문제에 가장 적합한 기능 또는 루틴을 선택하십시오. 다음 리소스를 사용하세요.

리소스 링크: 목차

Linux*용 oneMKL 개발자 안내서
Windows*용 oneMKL 개발자 가이드
macOS*용 oneMKL 개발자 가이드

개발자 안내서에는 다음과 같은 여러 주제에 대한 자세한 정보가 포함되어 있습니다.

  • 애플리케이션 컴파일 및 링크
  • 사용자 지정 DLL 빌드
  • 스레딩
  • 메모리 관리

oneMKL 개발자 참조 – C
언어 oneMKL 개발자 참조 – 포트란 언어
oneMKL 개발자 참조 – DPC++ 언어

  • 개발자 참조(C, Fortran 및 DPC++ 형식)에는 모든 라이브러리 도메인의 기능 및 인터페이스에 대한 자세한 설명이 포함되어 있습니다.

인텔® oneAPI 수학 커널 라이브러리 함수 찾기 어드바이저

  • LAPACK Function Finding Advisor를 사용하여 특정 문제에 유용한 LAPACK 루틴을 탐색합니다. 예를 들어amp작업을 다음과 같이 지정하는 경우:
    • 루틴 유형: 전산
    • 계산 문제: 직교 분해
    • 매트릭스 유형: 일반
    • 작업: 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파일, ilp64 인터페이스 및 TBB 스레딩을 사용하여 main.cpp 빌드/정적으로 연결:
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

Linux에서 동적 연결이 있는 DPC++ 인터페이스의 경우
icpx -fsycl -DMKL_ILP64 -L$ {MKLROOT}/lib/intel64 -lmkl_sycl -lmkl_intel_ilp64 -lmkl_ -lmkl_core -lsycl -lOpenCL -lpthread -ldl -lm
예를 들어amp파일, ilp64 인터페이스 및 TBB 스레딩을 사용하여 main.cpp 빌드/동적 연결:
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파일, ilp64 인터페이스 및 TBB 스레딩을 사용하여 main.cpp 빌드/정적으로 연결:
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파일, ilp64 인터페이스 및 TBB 스레딩을 사용하여 main.cpp 빌드/동적 연결:
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 인터페이스의 경우
GPU에 대한 OpenMP 오프로드 기능과 함께 C/Fotran Intel® oneAPI 수학 커널 라이브러리 인터페이스를 사용합니다.
이 기능에 대한 자세한 내용은 C OpenMP Offload Developer Guide를 참조하십시오.
C/Fortran oneMKL 컴파일/링크 라인에 다음 변경 사항을 추가하여 OpenMP 오프로드 기능을 GPU에 활성화합니다.

  • 추가 컴파일/링크 옵션: -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
지원되는 다른 모든 구성에 대해서는 Intel® oneAPI Math Kernel Library Link Line Advisor를 참조하십시오.

더 찾아보기

리소스: 설명

자습서: 행렬 곱셈에 인텔® oneAPI 수학 커널 라이브러리 사용:

  • 자습서 – C 언어
  • 자습서 – 포트란 언어

이 튜토리얼은 oneMKL을 사용하여 행렬을 곱하고, 행렬 곱셈의 성능을 측정하고, 스레딩을 제어하는 ​​방법을 보여줍니다.

인텔® oneAPI 수학 커널 라이브러리(oneMKL) 릴리스 노트 제어 스레딩.
릴리스 정보에는 새로운 기능과 변경된 기능을 포함하여 oneMKL의 최신 릴리스에 특정한 정보가 포함되어 있습니다. 릴리스 정보에는 릴리스와 관련된 주요 온라인 정보 리소스에 대한 링크가 포함되어 있습니다. 다음에 대한 정보도 찾을 수 있습니다.

  • 릴리스의 새로운 기능
  • 제품 내용
  • 기술 지원 받기
  • 라이선스 정의

인텔® oneAPI 수학 커널 라이브러리
인텔® oneAPI 수학 커널 라이브러리(oneMKL) 제품 페이지. 지원 및 온라인 설명서는 이 페이지를 참조하십시오.

인텔® oneAPI 수학 커널 라이브러리 설명서
Intel® oneAPI Math Kernel Library에는 행렬 곱하기, 연립방정식 풀기, 푸리에 변환 수행과 같은 다양한 수치 문제를 해결하는 데 도움이 되는 많은 루틴이 포함되어 있습니다.

인텔® oneAPI 수학 커널 라이브러리 벡터 통계에 대한 참고 사항
이 문서에는 이상이 포함되어 있습니다.view, VS에 포함된 난수 생성기의 사용 모델 및 테스트 결과.

인텔® oneAPI 수학 커널 라이브러리 벡터 통계 난수 생성기 성능 데이터
CPE(요소당 클록) 측정 단위, 기본 난수 생성기(BRNG), 생성된 분포 생성기 및 생성된 벡터의 길이를 포함하는 벡터 통계(VS) 난수 생성기(RNG)를 사용하여 얻은 성능 데이터.

인텔® oneAPI 수학 커널 라이브러리 벡터 수학 성능 및 정확도 데이터
벡터 수학(VM)은 벡터 인수에 대한 기본 함수를 계산합니다. VM에는 벡터에서 작동하는 계산 비용이 많이 드는 핵심 수학 함수(멱, 삼각, 지수, 쌍곡선 등)의 고도로 최적화된 구현 세트가 포함되어 있습니다.

인텔® oneAPI 수학 커널 라이브러리 요약 통계에 대한 애플리케이션 노트
요약 통계는 인텔® oneAPI 수학 커널 라이브러리의 벡터 통계 도메인의 하위 구성 요소입니다. 요약 통계는 초기 통계 분석을 위한 기능을 제공하고 다차원 데이터 세트의 병렬 처리를 위한 솔루션을 제공합니다.

라팩 Examp레
이 문서는 ex 코드를 제공합니다.amponeMKL LAPACK(Linear Algebra PACKage) 루틴용 파일.

고지 및 면책 사항
성능 테스트에 사용된 소프트웨어 및 워크로드는 Intel 마이크로프로세서의 성능에만 최적화되었을 수 있습니다. SYSmark 및 MobileMark와 같은 성능 테스트는 특정 컴퓨터 시스템, 구성 요소, 소프트웨어, 운영 및 기능을 사용하여 측정됩니다. 이러한 요소가 변경되면 결과가 달라질 수 있습니다. 다른 제품과 결합했을 때 해당 제품의 성능을 포함하여 고려한 구매를 완전히 평가하는 데 도움이 되는 다른 정보 및 성능 테스트를 참조해야 합니다. 더 자세한 정보를 보려면 다음을 방문하십시오. www.intel.com/benchmarks.
인텔 기술은 활성화 된 하드웨어, 소프트웨어 또는 서비스 활성화가 필요할 수 있습니다.
어떤 제품이나 구성 요소도 절대적으로 안전할 수 없습니다.
비용과 결과는 다를 수 있습니다.
© 인텔사. 인텔, 인텔 로고 및 기타 인텔 마크는 인텔사 또는 그 자회사의 상표입니다. 다른 이름과 브랜드는 다른 사람의 자산으로 주장될 수 있습니다.

제품 및 성능 정보
성능은 사용, 구성 및 기타 요인에 따라 다릅니다. 자세히 알아보기 www.Intel.com/PerformanceIndex.
공지사항 개정 #20201201
이 문서는 어떠한 지적 재산권에 대한 라이선스(명시적이든 묵시적이든, 금반언에 의하든 그렇지 않든)를 부여하지 않습니다.
설명된 제품에는 정오표로 알려진 설계 결함이나 오류가 포함되어 있을 수 있으며, 이로 인해 제품이 게시된 사양과 다를 수 있습니다. 현재 특성화된 정오표는 요청 시 제공됩니다.
인텔은 상업성, 특정 목적에의 적합성 및 비침해에 대한 묵시적 보증을 포함하되 이에 국한되지 않는 모든 명시적 및 묵시적 보증은 물론 수행 과정, 거래 과정 또는 거래 사용 과정에서 발생하는 모든 보증을 부인합니다.

문서 / 리소스

인텔 oneAPI 수학 커널 라이브러리 [PDF 파일] 사용자 가이드
oneAPI 수학 커널 라이브러리, 수학 커널 라이브러리, 커널 라이브러리, 라이브러리

참고문헌

댓글을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 항목은 표시되어 있습니다. *