Всего каких-то пять лет назад компания Intel была горда тем, что могла предложить единую и традиционную для отрасли модель программирования на базе x86-совместмых инструкций. Эта модель охватывала мобильные системы на SoC Atom, ускорители расчётов Xeon Phi (условно графическая архитектура ― в девичестве Larrabee) и процессоры. Сегодня тезис «x86 ― это наше всё» для компании перестал быть актуальным. В активе Intel скоро появятся уникальные дискретные графические архитектуры и уже появились процессоры для работы с нейронными сетями. Для программирования под новые платформы и фреймворки компании Intel требуется новая модель программирования, которая тоже должна быть унифицированной.

На днях в Лондоне на мероприятии Intel Software Technology компания представила такую модель. Новая унифицированная модель программирования развивается в виде проекта «One API». Согласно проекту, программировать для всего спектра решений и платформ Intel станет проще вне зависимости от выбора платформы. Как заявил Билл Сэвэдж (Bill Savage), вице-президент Intel и генеральный менеджер подразделения Compute Performance Developer Products: «Цель проекта «One API» ― предоставить разработчикам набор инструментов, предлагающих унифицированную модель программирования и упрощающих создание рабочих нагрузок для различных архитектур. По мере развития наших вычислительных возможностей, которые теперь включают специализированные ускорители, Intel будет предлагать программные решения, позволяющие разработчикам добиться от оборудования максимальной производительности».

Свежим примером возможности для работы с различными архитектурами являются средства разработки Intel Distribution of OpenVINO Toolkit. Мы неоднократно рассказывали об этом инструменте, который предлагает единые оптимизированные возможности для глубокого обучения для всех архитектур Intel SVMS (scalar, vector, matrix, spatial). Это означает, что OpenVINO позволяет создавать программы для обычных, графических, нейронных процессоров и FPGA. Проект One API позволит делать то же самое при прямом программировании и через API, но в расширенном объёме и несколько проще, что выразится, например, в освобождении от необходимости поддерживать раздельные базы исходного кода, различные языки программирования, а также различные инструменты и рабочие процессы.

«Прямое программирование: Проект One API включает в себя новый язык непосредственного программирования Data Parallel C++ (DPC++), который предлагает открытую общеотраслевую альтернативу проприетарным языкам программирования для отдельных архитектур. В основе DPC++ лежит С++, при этом в языке используется модельSYCL* от The Khronos Group. Кроме того, в нем реализована поддержка языковых расширений, разрабатываемых в рамках открытого сообщества».

Программирование с использованием API обеспечат уникальные библиотеки для различных типов рабочих нагрузок с поддержкой аппаратного ускорения. При этом библиотечные функции разрабатываются для каждой целевой архитектуры. Для анализа и отладки создаются расширенные версии инструментов с поддержкой DPC++ и архитектур SVMS. Добавим, бета-версия инструментов для разработчиков и дополнительные подробности о проекте One API ожидаются в четвертом квартале 2019 года.