하나의 API(가속도 계산)
oneAPI (compute acceleration)저장소 | github |
---|---|
운영체제 | 크로스 플랫폼 |
플랫폼 | 크로스 플랫폼 |
유형 | 병렬 프로그래밍을 위한 오픈 소스 소프트웨어 규격 |
웹사이트 | www |
oneAPI는 GPU,[1] AI 가속기 및 현장 프로그래밍 가능 게이트 어레이를 포함한 다양한 컴퓨팅 가속기(코프로세서) 아키텍처에서 사용하기 위한 통합 애플리케이션 프로그래밍 인터페이스(API)를 위해 인텔에서 채택한 개방형 표준입니다. 개발자가 각 아키텍처에 대해 별도의 코드 베이스, 여러 프로그래밍 언어, 도구 및 워크플로우를 유지 관리할 필요를 제거하기 위한 것입니다.[2][3][4][5]
사양
하나의 API 사양은 기존 개발자 프로그래밍 모델을 확장하여 데이터 병렬 언어, 라이브러리 API 세트, 낮은 수준의 하드웨어 인터페이스를 통해 여러 하드웨어 아키텍처를 가능하게 하여 교차 아키텍처 프로그래밍을 지원합니다. 업계 표준을 기반으로 구축되며 개방형 크로스 플랫폼 개발자 스택을 제공합니다.[6][7]
데이터 병렬 C++
DPC++[8][9]는 ISO C++ 및 크로노스 그룹 SYCL 표준을 기반으로 구축된 하나의 API의 프로그래밍 언어 구현입니다.[10] DPC++는 통합 공유 메모리, 그룹 알고리즘 및 하위 그룹을 포함하여 향후 SYCL 표준 개정 시 포함하도록 제안되는 확장 기능을 갖춘 SYCL 구현입니다.[11][12][13]
라이브러리
API[6] 세트는 선형 대수학, 딥 러닝, 머신 러닝, 비디오 처리 등을 위한 라이브러리를 포함하여 여러 도메인에 걸쳐 있습니다.
라이브러리 이름 | 짧다 이름. | 묘사 |
---|---|---|
하나의 API DPC++ 라이브러리 | 1DPL | DPC++ 커널 프로그래밍 속도를 높이기 위한 알고리즘 및 기능 |
하나의 API Math Kernel 라이브러리 | 1MKL | 행렬 대수, FFT 및 벡터 수학을 포함한 수학 루틴 |
하나의 API Data Analytics 라이브러리 | 원달 | 기계 학습 및 데이터 분석 기능 |
1API 심층 신경망 라이브러리 | 1DNN | 딥러닝 훈련 및 추론을 위한 신경망 기능 |
하나의 API 일괄 통신 라이브러리 | 원 CCL | 분산형 딥러닝을 위한 커뮤니케이션 패턴 |
하나의 API 스레드화된 빌딩 블록 | 1TBB | 스레드화 및 메모리 관리 템플릿 라이브러리 |
하나의 API 비디오 프로세싱 라이브러리 | 1VPL | 실시간 비디오 인코딩, 디코딩, 트랜스코드 및 처리 |
위 라이브러리의 일부 소스 코드는 GitHub에서 사용할 수 있습니다.[14]
하나의 API 문서에는 낮은 수준의 직접 금속 인터페이스를 정의하는 "레벨 제로" API와 자체 API가 포함된 광선 추적 구성 요소 세트도 나열되어 있습니다.[6]
하드웨어 추상화 계층
oneAPI Level Zero는 [15][16][17]낮은 수준의 하드웨어 인터페이스로, 하드웨어 가속기가 컴파일러 런타임 및 기타 개발자 도구와 인터페이스하는 데 필요한 기능 및 서비스 집합을 정의합니다.
구현
인텔은 사양을 구현하고 CUDA 코드 마이그레이션, 분석 및 디버그 도구를 추가하는 하나의 API 제작 툴킷을 출시했습니다.[18][19][20] 여기에는 Intel 제품이 포함됩니다.API DPC++/C++ 컴파일러,[21] Intel Fortran 컴파일러, Intel VTune Profiler[22] 및 여러 성능 라이브러리.
코드플레이는 오픈 소스 계층을[23][24][25] 공개하여 하나를 허용합니다.API 및 SYCL/DPC++는 CUDA를 통해 Nvidia GPU에서 실행됩니다.
하이델베르크 대학교는 AMD 및 Nvidia GPU 모두를 위한 SYCL/DPC++ 구현을 개발했습니다.[26]
화웨이, 어센드 AI 칩셋용[27] DPC++ 컴파일러 출시
후지쯔는 후가쿠 CPU를 위해 oneAPI Deep Neural Network Library (oneDNN)[28]의 오픈 소스 ARM 버전을 만들었습니다.
통합 가속화 기반(UXL)과 하나의 API를 위한 미래
Unified Acceleration Foundation(UXL)은 새로운 기술 컨소시엄으로, 새로운 개방형 표준 액셀러레이터 소프트웨어 생태계, 관련 개방형 표준 및 규격 프로젝트를 Working Groups 및 Special Interest Groups(SIG)를 통해 구축하는 것을 목표로 합니다. 목표는 Nvidia의 CUDA와 경쟁할 것입니다. 그 뒤를 잇는 주요 기업은 인텔, 구글, ARM, 퀄컴, 삼성, 상상, VMware 등입니다.[29]
경쟁사와의 비교
하나의 API는 다른 GPU 컴퓨팅 스택과 경쟁합니다: [NVIDIA의 CUDA]와 AMD의 ROCm.
엔비디아의 CUDA가 폐쇄형인 반면 AMD ROCm과 인텔의 OneAPI는 오픈 소스입니다.
엔비디아 CUDA
CUDA(Comput Unified Device Architecture)는 소프트웨어가 가속화된 범용 처리를 위해 엔비디아의 특정 유형의 그래픽 처리 장치(GPU)를 사용할 수 있도록 하는 폐쇄형 소스 병렬 컴퓨팅 플랫폼 및 애플리케이션 프로그래밍 인터페이스(API)입니다. 이 접근 방식은 GPU(General-purpose computing on GPU)라고 합니다.
AMD ROCm
ROCm은[30] 어드밴스드 마이크로 디바이스(AMD)의 그래픽 처리 장치(GPU) 프로그래밍을 위한 오픈 소스 소프트웨어 스택입니다.
참고문헌
- ^ Fortenberry & Tomov 2022, p. 22.
- ^ "Intel Expands its Silicon Portfolio, and oneAPI Software Initiative for Next-Generation HPC". HPCwire. 2019-12-09. Retrieved 2020-02-11.
- ^ "Intel Debuts New GPU – Ponte Vecchio – and Outlines Aspirations for oneAPI". HPCwire. 2019-11-18. Retrieved 2020-02-11.
- ^ "SC19: Intel Unveils New GPU Stack, oneAPI Development Effort - ExtremeTech". www.extremetech.com. Retrieved 2020-02-11.
- ^ Kennedy, Patrick (2018-12-24). "Intel One API to Rule Them All Is Much Needed to Expand TAM". ServeTheHome. Retrieved 2020-02-11.
- ^ a b c "oneAPI Specification". oneAPI.
- ^ "Preparing for the Arrival of Intel's Discrete High-Performance GPUs". HPCwire. 2021-03-23. Retrieved 2021-03-29.
- ^ "Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems Using C++ and SYCL". Apress.
- ^ Team, Editorial (2019-12-16). "Heterogeneous Computing Programming: oneAPI and Data Parallel C++". insideBIGDATA. Retrieved 2020-02-11.
- ^ "The Khronos Group". The Khronos Group. 2020-02-11. Retrieved 2020-02-11.
- ^ "Khronos Steps Towards Widespread Deployment of SYCL with Release of SYCL 2020 Provisional Specification". The Khronos Group. 2020-06-30. Retrieved 2020-07-06.
- ^ staff (2020-06-30). "New, Open DPC++ Extensions Complement SYCL and C++". insideHPC. Retrieved 2020-07-06.
- ^ "SYCL 2020 Launches with New Name, New Features, and High Ambition". HPCwire. 2021-02-09. Retrieved 2021-02-16.
- ^ "oneAPI-SRC". GitHub.
- ^ Verheyde 2019-12-08T16:11:19Z, Arne. "Intel Releases Bare-Metal oneAPI Level Zero Specification". Tom's Hardware. Retrieved 2020-02-11.
{{cite web}}
: CS1 메인트: 숫자 이름: 작성자 목록(링크) - ^ "Intel's Compute Runtime Adds oneAPI Level Zero Support - Phoronix". www.phoronix.com. Retrieved 2020-03-10.
- ^ "Initial Benchmarks With Intel oneAPI Level Zero Performance - Phoronix". www.phoronix.com. Retrieved 2020-04-13.
- ^ "Intel Champions XPU Vision With oneAPI, Data Center GPUs - SDxCentral". SDxCentral. 2020-11-11. Retrieved 2020-11-11.
- ^ "Intel Debuts oneAPI Gold and Provides More Details on GPU Roadmap". HPCwire. 2020-11-11. Retrieved 2020-11-11.
- ^ Moorhead, Patrick. "Intel Announces Gold Release Of OneAPI Toolkits And New Intel Server GPU". Forbes. Retrieved 2020-12-08.
- ^ "Data Parallel C++ for Cross-Architecture Applications". Intel. Retrieved 2021-10-07.
- ^ "Fix Performance Bottlenecks with Intel® VTune™ Profiler". Intel. Retrieved 2021-10-07.
- ^ "Codeplay Open Sources a Version of DPC++ for Nvidia GPUs". HPCwire. 2020-02-05. Retrieved 2020-02-12.
- ^ "Intel's oneAPI / DPC++ / SYCL Will Run Atop NVIDIA GPUs With Open-Source Layer - Phoronix". www.phoronix.com. Retrieved 2019-12-06.
- ^ "Codeplay - Codeplay contribution to DPC++ brings SYCL support for NVIDIA GPUs". www.codeplay.com. Retrieved 2020-02-11.
- ^ Salter, Jim (2020-09-30). "Intel, Heidelberg University team up to bring Radeon GPU support to AI". Ars Technica. Retrieved 2021-10-07.
- ^ Extending DPC++ with Support for Huawei Ascend AI Chipset, retrieved 2021-10-07
- ^ fltech. "A Deep Dive into a Deep Learning Library for the A64FX Fugaku CPU - The Development Story in the Developer's Own Words". fltech - 富士通研究所の技術ブログ (in Japanese). Retrieved 2021-02-10.
- ^ https://www.reuters.com/technology/behind-plot-break-nvidias-grip-ai-by-targeting-software-2024-03-25/
- ^ "Question: What does ROCm stand for? · Issue #1628 · RadeonOpenCompute/ROCm". Github.com. Retrieved January 18, 2022.
원천
- Fortenberry, Anna; Tomov, Stanimire (2022). Extending MAGMA Portability with OneAPI (PDF). 2022 Workshop on Accelerator Programming Using Directives (WACCPD). IEEE. pp. 22–31. .
외부 링크
- 공식 홈페이지
- GitHub에서 하나의 API
- SYCL 개발자에게 Nvidia GPU 지원 제공
- Reinders, James; et al. (2021). Data Parallel C++: Mastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL. Open Access Book. Springer. doi:10.1007/978-1-4842-5574-2. ISBN 978-1-4842-5574-2. S2CID 226231933.