Intel поддерживает OpenCL

Последний гигант графического рынка присоединился к GPGPU-технологиям…но пока только на центральных процессорах.

Открытый стандарт универсальных вычислений на CPU, GPU и специальных процессорах вроде Cell, OpenCL был принят больше года назад. Серьёзными препятствиями на пути к его всеобщему признанию стали не только проблемы конкретных его реализаций у AMD и NVIDIA, но и неясность позиции третьего крупного игрока на рынке оборудования для вычислений и графики — компании Intel. Последняя неоднократно намекала на возможность неграфического применения своих интегрированных IGP, в основном в области ускорения операций с видео, но отказывалась сообщать что-либо конкретное о подходах к реализации данных функций своего оборудования для программистов. Перед конференцией SC 2010 произошла утечка сведений, что шейдерные ядра будущих IGP процессоров Sandy Bridge будут поддерживать GPGPU, и что в нёдрах Intel вызревает соответствующий SDK для OpenCL.

На днях без лишней помпы Intel представила предварительную версию OpenCL SDK. В неё реализована полная функциональность спецификаций OpenCL 1.1, в том числе:

  • поддержка внеочередного исполнения (out-of-order);
  • поддержка вещественных вычислений с двойной точностью;
  • работа с контекстом OpenCL из OpenGL-приложения, а также совместное использование буферов и памяти текстур между этими API;
  • архитектура ICD драйвера для одновременного присутствия нескольких реализаций OpenCL в системе.

Вместе с тем, имеется небольшой нюанс — на настоящий момент реализована только CPU Target, т. е. исполнение OpenCL с помощью x86 инструкций на центральном процессоре. Что и как будет с интегрированными графическими ядрами — пока чёткого ответа так и нет.

OpenCL logo

Загрузить SDK и сопроводительную документацию можно с сайта Intel. Для работы требуются Windows Vista или 7, 32- или 64-разрядная версия (но поддерживается работа лишь 32-разрядных OpenCL приложений), а также центральный процессор с поддержкой инструкций SSE 4.1 (то есть на ядре Nehalem или новее). В настоящее время работа поддержки OpenCL от Intel требует отключения других поставщиков OpenCL в системе с помощью правки реестра.

Будем надеяться, что Intel по-настоящему поддержит общий стандарт, тем более, что уже даже графические процессоры в телефонах и КПК в ближайшее время будут обладать такой возможностью.