Не так давно я рассказывал про одну из самых перспективных технологи Mac OS X, которая позволяет без особого труда снизить нагрузку на центральный процессор Mac’а и использовать значительную вычислительную мощность графической подсистемы или любого специализированного железа с целью выполнения сложных расчетов.

Организация Kronos Group, отвечающая за большое количество открытых стандартов вроде OpenGL, WebGL или OpenMAX, не так давно анонсировала релиз кросс-платформенного стандарта OpenCL версии 1.1. Последнее обновление этого стандарта включает множество улучшений производительности, не исключая и обратную совместимость с версией 1.0.

Первая спецификация OpenCL была выпущена всего через 6 месяцев после того, как Apple на презентации Snow Leoaprd «впереди паровоза» запланировали широкое использование Open Compute Language в будущей системе. Конечно, «поголовный» переход на новую версию отложен на некоторое время, чтобы дать возможность разработчикам составить свое мнение и подготовиться к ней.

«Любой рабочий стандарт постоянно развивается и отвечает всем мнениям или требованиям разработчиков, полученным в результате тесного общения с рабочей группой», — говорит Нейл Тревет (Neil Trevett), председатель рабочей группы OpenCL, президент Kronos Group и вице-президент Nvidia. — «Мы думаем, что для процесса адаптации хватит 18 месяцев».

Обновленная версия добавляет дополнительны типы данных и функции языка С для обеспечения гибкости и совместимости между OpenCL и OpenGL, что важно для многих проблем научной визуализации и игровых задач. А поддержка координирующих команд от нескольких потоков позволяет более гибко распределять нагрузку между имеющимися ресурсами компьютерной системы. Кроме того, спецификация OpenCL предполагает использование языка C, в то время как OpenCL 1.1 поддерживает API-обертку для C++.

Даже со всеми этими дополнениями, разработчикам не придется существенно изменять код текущих приложений, потому что в спецификации предусмотрена строгая обратная совместимость.

Модель OpenCL позволяет программе получить соответствующие ресурсы, доступные в системе, а также создавать маленькие функции, называемые ядрами, направляя их на обработку в полученные ресурсы. Работая на низком уровне, OpenCL предоставляет обобщенную модель управления памятью и запуском инструкций на CPU, GPU, DSP чипах и многом другом.

Также, кросс-платформенная спецификация открывает все преимущества для мира мобильных вычислений. К примеру, Imagination Technologies недавно объявили о встроенной поддержке OpenCL в последней редакции своих графических ядер PowerVR SGX, которые широко используются во многих смартфонах и портативных устройствах, в том числе, iPhone и iPad. Удивительно, но без лишней головной боли все будущие улучшения для десктопных систем могут быть мгновенно перенесены в мобильный сегмент.

И хотя Apple была первой компанией, предложившей общесистемную базисную поддержку OpenCL, NVidia имеет свой собственный компилятор и поддерживает работу необходимого API в Windows 7 и Linux. AMD, вроде, тоже оказывает поддержку спецификации, а Intel только работает над обеспечением поддержки в своих IGP.

На данный момент, свой вклад в развитие OpenCL вносят огромное число компаний, включая AMD, Apple, ARM, Blizzard Activision, Broadcom, Codeplay, Electronic Arts, Ericsson, Freescale, Remedy, IBM, Imagination Technologies, Intel, Movidia, Nokia, NVidia, Petapath, Presagis, Qualcomm, Renesas, S3 Graphics, Sony, STMicroelectronics, Symbian и Texas Instruments.

Треветт сообщает, что NVidia уже выпустила графические драйверы, совместимые с OpenCL 1.1, поэтому независимые разработчики могут немедленно опробовать спецификацию в действии. Также, в специальном разделе на своем сайте, Khronos Group разместит полную спецификацию стандарта, разнообразную справочную информацию и тестовые примеры.


Читайте также: