Intel® oneAPI Base Toolkit
Cross-Architecture application의 성능을 위한 고급 Tool
개요 |
다양한 아키텍처에서 고성능, 데이터 중심 응용 프로그램을 개발하기 위한 핵심 도구 및 라이브러리 세트로, 이기종 컴퓨팅을 위한 C++의 진화인 SYCL*을 구현하는 업계 최고의 C++ 컴파일러와 도메인별 강력한 라이브러리, Python 용 Intel 배포판, 향상된 프로파일링 설계 지원 및 디버그 도구가 포함되어 있습니다.
Base Toolkit 구성
- 컴파일러는 CPU 및 가속기에 걸쳐 성능저하 없는 병렬 프로그래밍 생산성과 성능을 제공 합니다.
- 아키텍처 및 고성능 컴파일러에 대한 수십 년 간 Intel의 경험을 바탕으로 구축 되었습니다.
- 특정 가속기에 대한 사용자 지정을 허용 하면서 하드웨어 대상 간에 코드를 재 사용 할 수 있습니다.
- 단일 아키텍처 전용 언어에 대한 Open Source Project로 다양한 아키텍처 별 환경 및 언어의 파편화에 대한 대안 입니다.
- 공통적이고 친숙한 C 및 C++ 구조를 사용하여 개발 생산성의 이점을 제공합니다.
- DPC++은 ISO 및 Khronos SYCL을 기반으로 합니다
- 아키텍처 및 고성능 컴파일러에 대한 수십 년 간 Intel의 경험을 바탕으로 구축 되었 습니다.
- 개발자가 CUDA로 작성된 코드를 DPC++(Data Parallel C++)로 마이그레이션 할 수 있도록 지원하며 가능한 경우 어디서나 사람이 읽을 수 있는 코드를 생성 합니다.
- 커널 및 API 호출에 대한 마이그레이션을 통해 새로운 DPC++ 코드를 생성 합니다.
- 일반적으로 코드의 ~90% ~ 95% 코드가 자동으로 DPC++ 코드로 마이그레이션 됩니다.
- C++ 표준 알고리즘에 최적화 되어 있습니다.
- C++ 개발자들이 이미 익숙한 병렬 라이브러리를 기반으로 디자인 되어 있습니다.
- Intel DPC++ 호환성 도구와 통합 됩니다.
- 개발자는 oneAPI에서 제공되는 분석 & 디버그 도구를 사용하여 분석, 최적화 및 디버그를 효율적으로 할 수 있습니다.
- 컴퓨팅 Offload를 분석 합니다.
- 가속기로의 Offload 성능을 예측 합니다.
- CPU / GPU 코드를 메모리 및 계산에 최적화 합니다.
- 벡터화를 추가하고 최적화 합니다.
- 가속기의 메모리, 캐시, 계산 및 데이터 전송시 발생하는 병목현상을 정확히 찾아 냅니다.
- DPC++ 코드에서 가장 많은 시간을 소비하는 라인을 찾아 줍니다.
- OpenMP Offload 성능을 Tuning 합니다.
- 시스템의 CPU, 가속기의 상호 작용에 대한 가시성을 제공 합니다.
- 작업의 일부를 효율적으로 정확히 파악 하기 위해서 핫스팟을 식별 합니다.
- 다양한 언어(C,C++,DPC++,java,python,Go …)를 지원 합니다.
- DPC++ 코드 및 이기종 Application을 Debug 합니다.
- 다중 가속기를 지원 합니다(Intel CPU, GPU, FPGA 에뮬레이션).
- Application Runtime 중 가속기 아키텍처를 자동 감지 합니다.
- GDB(GNU Project Debugger)기반 Open Source 솔루션 입니다.