| {{{#!wiki style="margin: +10px +10px;" | <tablealign=right><tablebordercolor=#00285a><tablebgcolor=#00285a> | oneAPI | }}} | |
| <colbgcolor=#00285a> 공개 | 2019년 11월 17일 | |||
| 출시 | 2020년 12월 8일 | |||
| 최신 버전 | 2026.1.1 (2026년 9월) | |||
| 웹사이트 | ||||
1. 개요
인텔 주도로 개발되고 있는 개방형, 표준 기반의 프로그래밍 모델 및 소프트웨어 라이브러리.CPU, GPU, FPGA, AI 가속기 등 서로 다른 아키텍처를 가진 하드웨어(통칭 XPU)를 단일한 소스 코드로 제어하고 병렬 처리할 수 있도록 개발되었다. 특정 벤더에 종속된 독점 연산 API 모델인 NVIDIA의 CUDA에 대응하여, 개방형 크로스 아키텍처 생태계를 구축하는 것을 핵심 목표로 삼고 있다.
크로노스 그룹의 SYCL 및 C++에 기반을 두고 있다.
2. 역사
2020년 인텔의 기존 유료 제품군인 Parallel Studio XE와 System Studio가 oneAPI 툴킷으로 재편되었고, 상업적 용도를 포함해 무료로 제공되기 시작하였다.3. 개발 키트
3.1. 컴파일러
과거 자체 백엔드를 사용하기도 하였으나, 현재는 모두 LLVM 기반이다.3.1.1. 인텔 oneAPI DPC++/C++ 컴파일러 (icx)
LLVM 기반의 C/C++/SYCL 컴파일러. 자체 백엔드를 사용하던 인텔 C++ 컴파일러 클래식(ICC)을 계승하였으며, ICC는 oneAPI 2024.0부터 제외되었다.
3.1.2. 인텔 포트란 컴파일러
인텔에서 제공하는 포트란 컴파일러로, LLVM 기반의 ifx와, 자체 백엔드를 사용하던 ifort(인텔 포트란 컴파일러 클래식)가 있었다. ifort는 oneAPI 2025.0에서 제외되어 현재는 ifx만 제공된다.3.2. 라이브러리
대부분은 인텔의 기존 라이브러리가 oneAPI 출범과 함께 이름을 바꾼 것이다.- oneMKL: 선형대수(BLAS, LAPACK), 고속 푸리에 변환, 난수 생성 등을 제공하는 수학 라이브러리.
- oneDNN: 합성곱, 행렬 곱 등 딥러닝 연산 라이브러리.
- oneTBB: 작업 단위로 병렬화하는 C++ 라이브러리. 기존 이름은 TBB(Threading Building Blocks)이다.
- oneDPL: C++ 표준 라이브러리의 병렬 알고리즘을 SYCL 장치에서도 실행할 수 있게 확장한 라이브러리.
- oneDAL: 데이터 분석과 기계 학습 알고리즘 라이브러리.
- oneCCL: 분산 학습용 집합 통신 라이브러리.
3.2.1. oneMKL
선형대수(BLAS, LAPACK), 희소 행렬 연산, 고속 푸리에 변환, 난수 생성, 벡터 수학 함수 등을 제공하는 수학 라이브러리. 기존 이름은 인텔 MKL(Math Kernel Library)이다.MATLAB, 아나콘다 배포판의 NumPy 등 여러 수치 계산 소프트웨어가 기본 BLAS 구현으로 채택할 정도로 수치 연산 분야에서는 잘 알려져 있다.
3.2.2. oneDNN
합성곱, 행렬 곱, 정규화 등 딥러닝 연산을 제공하는 라이브러리. 2016년 MKL-DNN이라는 이름으로 오픈 소스로 공개되었고, DNNL을 거쳐 2020년 oneDNN이 되었다.PyTorch, TensorFlow, OpenVINO 등이 x86 CPU 연산에 oneDNN을 쓴다.
3.3. 분석 및 디버깅
성능 분석기인 VTune, 최적화 여지를 분석하는 인텔 Advisor, 디버깅용 Intel Distribution for gdb가 포함되어 있다.3.3.1. 인텔 VTune
성능 분석기(프로파일러).하드웨어 이벤트 기반 분석은 인텔 CPU에서만 쓸 수 있으며, AMD 등 다른 제조사 CPU에서는 타이머 기반 표본 추출 등 일부 분석만 쓸 수 있다.
4. 여담
- 인텔이 제공하는 수학 라이브러리인 MKL(현재 oneMKL)이 과거 타사(주로 AMD) CPU를 감지하면 AVX 등의 고급 명령어를 비활성화하고 느린 SSE 코드로 전환하여 MATLAB 등에서 성능이 크게 하락하는 이슈가 있었다. 2021년 이후로 해당 문제는 완화된 것으로 보인다.