
oneAPI
Computing 가속을 위한 통합 Application Programming Interface의 개방형 표준
개요 |
전 세계적으로 데이터 중심 워크로드가 기하 급수적으로 증가 하고, 점차 다양해 지면서 데이터를 처리하는 아키텍쳐도 다양해지고 있습니다. 해당 아키텍쳐들은 성능을 제대로 발휘해줄 효율적인 소프트웨어 프로그래밍 모델을 필요로 합니다. 각 아키텍쳐에는 별도의 도구가 필요하며, 코드의 재사용이 제한 됩니다. 이로인해 개발이 복잡하고, 개발에 대한 비용이 증가 됩니다.
oneAPI는 다양한 컴퓨팅 아키텍처 전반에 걸친 워크로드 개발을 간소화 할 수 있도록 단일 프로그래밍 모델을 제공하는 개발자 툴 세트를 제공하는 프로젝트 입니다.
oneAPI 프로그래밍 모델

- 통합 모델을 통한 프로그래밍 구현의 단순화
- 업계 표준을 기반으로 한 Open Source
- 여러 아키텍쳐에서 검증된 성능 제공
oneAPI 소프트웨어 아키텍쳐

- 다양한 아키텍쳐에서 성능 기반의 높은 네이티브 수준의 단일 언어(DPC++)로 프로그래밍 가능 합니다.
- 단일 언어인 DPC++은 C++ 및 SYCL 표준을 기반으로 하는 교차 아키텍쳐 언어로 통합 됩니다.
- oneAPI Libraries는 Hardware-Domain 별 기능의 가속화를 위해 설계된 강력한 라이브러리 입니다.
oneAPI 소프트웨어 아키텍쳐

목적 |
이기종 시스템에서 CPU 및 다양한 종류의 가속기(GPU, FPGA, …)를 사용하기위해 개발자는 각각 다른 환경 및 프로그래밍 모델을 공부를 해야하는 부담이 발생하고, 이에 따른 유지보수의 어려움에 직면하게 됩니다.
이에, oneAPI는 개발을 간편하고 쉽게 할 수 있도록, 통합된 프로그래밍 모델을 제공하는데 목적이 있다.
oneAPI의 장점
미래에 대비하는 프로그래밍 모델로 선택의 자유 제공
- 간편한 아키텍처 리타깃팅을 위해 단일 벤더/독점 종속에 대한 개방형 대안을 확보합니다.
- 차세대 하드웨어 플랫폼에 넣을 소프트웨어를 재작성하지 않고 자신의 기술을 그 다음 혁신에 투입합니다.
하드웨어의 가치 모두 실현
- 최신 하드웨어의 모든 최첨단 기능을 도입하고 이용합니다.
- 가속 아키텍처의 성능—인텔 CPU, GPU, FPGA에서 성능을 극대화하여 가속 컴퓨팅을 충분히 활용합니다.
성능 기준에 맞는 코드를 자신감 있게 빠르고 정확하게 개발
- 이기종 아키텍처 간 라이브러리와 고급 도구 세트 전체를 사용한 빠르고 효율적인 개발.
- 익숙한 언어와 표준으로 학습 곡선 단축. 포트란, C/C++, 오픈MP, MPI는 물론 최적화된 풍부한 파이썬 라이브러리를 갖춘 파이썬 등의 기존 HPC 프로그래밍 표준과 상호운용이 가능합니다.
- CUDA 코드를 DPC++로 마이그레이션하는 등 레거시 코드와의 간편한 통합.