8 декабря 2020 года состоялся официальный выпуск (gold release) набора средств для разработки софта под различные архитектуры Intel oneAPI toolkit. Это событие не попало на ленты информагентств, и даже мы в блоге, увы, его пропустили. Между тем, оно важно для огромной армии программистов по всему миру. Intel oneAPI — это новая ипостась хорошо известных многим из вас Intel Parallel Studio XE и Intel System Studio с новыми компонентами. Да, Студии Intel теперь называются oneAPI toolkit, и об этом стоит поговорить.
Если говорить самыми общими словами, то цель oneAPI toolkit — обеспечить максимальную производительность кода в гетерогенной среде исполнения. Ключевое слово здесь — гетерогенная среда, включающая в себя CPU, GPU, FPGA и разнообразные акселераторы. Сразу ответим на вопрос, почему именно oneAPI, ведь кроме библиотек для API-программирования в наборе есть куча других инструментов? oneAPI можно перевести также как «один подход» к различным архитектурам, что является ключевой концепцией продукта. При этом функциональное разделение внутри семейства oneAPI, конечно, имеется.
Всего предлагается 4 разновидности Intel oneAPI. Intel oneAPI Base Toolkit — набор общих средств для разработки, включенный далее во все остальные варианты. В Intel oneAPI Base and HPC Toolkit добавлены инструменты для создания HPC-приложений, в частности, средства кластеризации — это наследник Intel Parallel Studio XE. Intel oneAPI Base and IoT Toolkit, как следует из названия, предназначен создателям интернета вещей и прочих интеллектуальных устройств, многие из которых ранее пользовались в своей работе Intel System Studio. Наконец, Intel oneAPI Base and Rendering Toolkit, помимо базового компонента, вобрало в себя библиотеки и средства визуализации и рендеринга.
Рассмотрим теперь каждый продукт по отдельности.
Intel oneAPI Base Toolkit
Intel oneAPI Base Toolkit — это базовый набор средств и библиотек для создания и развертывания высокопроизводительных приложений на различных архитектурах.
Набор включает в себя:
- Компилятор Intel oneAPI DPC++/C++ — кросс-архитектурный компилятор, поддерживающий Data Parallel C++, C++, C, SYCL и OpenMP.
- Intel DPC++ Compatibility Tool — средство для миграции исходного кода CUDA на DPC++.
- Intel oneAPI DPC++ Library — библиотека ключевых алгоритмов и функций для параллельной обработки данных.
- Intel oneAPI Math Kernel Library — библиотека с математическими вычислительными функциями, включающими алгебру матриц, быстрые преобразования Фурье и векторную математику.
- Intel oneAPI Data Analytics Library — библиотека для повышения производительности машинного обучения и анализа данных.
- oneAPI Threading Building Blocks — шаблоны библиотек параллелизации и управления памятью.
- oneAPI Video Processing Library — библиотека для ускорения кодирования, декодирования, транскодирования и обработки в реальном времени трансляций, видеопотоков, видео по запросу, облачных игр и т.д. (потомок Intel Media SDK)
- Intel Advisor — средство для эффективной векторизации, параллелизации и оффлоада на ускорители.
- Intel Distribution for Python — инструмент для использования библиотек oneMKL, oneDAL, oneTBB и других «one» компонент из кода Python приложений.
- Intel DPC++ Compatibility Tool — средство для миграции исходного кода CUDA на мультиплатформенный код DPC++.
- Intel Integrated Performance Primitives — функции для повышения производительности обработки изображений и сигналов, сжатия данных, криптографии и т.д.
- Intel VTune Profiler — профилировщик для поиска и исправления узких мест в производительности на CPU, GPU и FPGA системах.
- Intel-Enhanced GDB — средство глубокой отладки кода для DPC++, C, C++ и Fortran.
- Intel FPGA Add-On for oneAPI Base Toolkit (опционально) — инструмент программирования настраиваемых аппаратных акселераторов для ускорения специализированных нагрузок.
- Intel oneAPI Deep Neural Network Library — средство разработки быстрых нейронных сетей на CPU и GPU Intel с помощью оптимизированных по производительности функциональных блоков.
- Intel oneAPI Collective Communications Library — оптимизированные коммуникационные шаблоны для распределения задач глубокого обучения и машинного обучения по нескольким узлам.
Intel oneAPI Base and HPC Toolkit
Intel oneAPI HPC Toolkit содержит все необходимые средства для кросс-архитектурной разработки c широкими возможностями масштабирования, в том числе и на многоузловые кластеры. Дополнительно к базовым компонентам, oneAPI Base and HPC Toolkit включает в себя:
- Классические компиляторы Intel C++ и Fortran, поддерживающие OpenMP и предназначенные для разработки под CPU.
- Компилятор Intel Fortran (Beta) для разработки под XPU.
- Intel Cluster Checker — средство контроля компонентов кластера для достижения оптимальной производительности и уменьшения простоев.
- Intel Inspector — инструмент для поиска ошибок многопоточности и использования памяти.
- Intel MPI Library — библиотека для обмена сообщениями внутри кластера на архитектуре Intel.
- Intel Trace Analyzer and Collector — средство изучения поведения MPI приложения в течение всего времени его исполнения.
Intel oneAPI Base and IoT Toolkit
Intel oneAPI Base and IoT Toolkit – это всеобъемлющий набор средств разработки, собранный для мастеров, создающих быстрые и эффективные устройства интернета вещей.
Помимо базового набора инструментов, Intel oneAPI Base and IoT Toolkit содержит:
- Средства подключения IoT для сопряжения датчиков с устройством и устройств с облаком.
- Средства сборки ядер Linux для Yocto Project.
- IDE Eclipse.
Intel oneAPI Base and Rendering
Intel oneAPI Base and Rendering — набор средств, предназначенных разработчикам приложений для создания цифрового контента, профессионального рендеринга, анимации, научной визуализации, компьютерного дизайна, архитектурного инжиниринга, игровой виртуальной и дополненной реальности.
Области применения Intel oneAPI Base and Rendering
Intel oneAPI Base and Rendering включает следующие специализированные средства с открытым исходным кодом:
- Intel Embree — инструмент для фотореалистичного рендеринга посредством высокопроизводительной трассировки лучей.
- Intel OSPRay — масштабируемый, переносимый распределенный API рендеринга.
- Intel Open Image Denoise — ускоренное с помощью AI средство подавления шума.
- Intel Open Volume Kernel Library — средство обработки 3D-пространственных данных для рендеринга и симуляции
- Intel OpenSWR — софтовая реализация OpenGL, масштабированная и оптимизированная для Intel Xeon
Ну вот, теперь вы знаете самое важное о главном продукте Intel для разработчиков. Скачать любой Intel oneAPI Toolkit можно здесь.