OpenCL от nVidia / Habr
Как известно, технология CUDA доступна только для видеокарт nVidia. Из-за этого факта часто возникают вопросы: как быть владельцам видеокарт ATI Radeon, и стоит ли вообще использовать решения, доступные на аппаратных средствах только одного производителя.
В связи с этим, я решил немного уточнить, что же из себя представляет CUDA, и какую роль она занимает в имплементации унифицированных стандартах GPGPU на видеокартах nVidia.
Программные реализации GPGPU
В настоящий момент на рынке еще нет универсальной технологий для использования GPU в неграфических вычислениях, хотя разработки идут полным ходом.
Среди разрабатываемых технологий особо стоит отметить Microsoft DirectX Compute и OpenCL, которую предложила Apple. Из заголовка можно догадаться, что сегодня речь пойдет об OpenCL и её реализации от nVidia.
OpenCL — открытый стандарт для GPGPU, который разрабатывается консорциумом Khronos (khronos.org), и по замыслам, позволит использовать мощности GPU на различных программных и аппаратных платформах.
Возможно, у некоторых возникнет вопрос: зачем nVidia разрабатывает CUDA, а ATI – Stream, не проще было бы сразу договориться о принятии общего стандарта. Но на самом деле все не так просто как кажется, и дело не только в политике производителей, хотя и в ней тоже. Так уж случилось, что развитие GPU идет несколько другим путем, в отличие CPU, где общая архитектура унифицирована достаточно давно. Графические процессоры различных производителей изначально имели совершенно разную архитектуру. Например, не существует общих команд для GPU разных производителей, не существует универсального ассемблера. И ответ касательно CUDA и Stream весьма прост – это и есть те аппаратно-зависимые прослойки поверх которых и строятся унифицированные архитектуры OpenCL и DirectX Compute. Если кто-то читал предыдущие записи по nVidia CUDA, то, наверное, заметил упоминание о CUDA driver API. CUDA driver API является той самой аппаратно-зависимой прослойка для работы с GPU от nVidia. В целом, программный стек для работы с nVidia GPU имеет следующий вид (можно найти в официальной документации по CUDA):
Как можно видеть, OpenCL и DX11 Compute работают поверх технологии CUDA.
Когда ждать OpenCL от nVidia
Не так давно консорциум Khronos обнародовал первую версию спецификации OpenCL, которая доступна на сайте данной организации в виде pdf-документа.
Компания nVidia так же представила roadmap по поддержке OpenCL в своей продукции:
Правда, beta-версия скорее всего будет доступна только для партнеров nVidia. Остается надеяться, что уже в середине года появится полноценная имплементация OpenCL, которой сможет воспользоваться любой желающий.
Заключение
Надеюсь, что немного развеял туман войны относительно поддержки OpenCL кампанией nVidia, и какую роль в этом играет CUDA.
NVIDIA представляет драйвер OpenCL для разработчиков|NVIDIA
За дополнительной информацией обращайтесь:
Ирина Шеховцова
NVIDIA Corporation
Тел: +7 495 981 03 00 ext 10777
[email protected]
NVIDIA представляет драйвер OpenCL для разработчиков
САНТА-КЛАРА, КАЛИФОРНИЯ — 20 АПРЕЛЯ, 2009 — Компания NVIDIA, изобретатель GPU, сегодня объявила о выпуске драйвера OpenCL и SDK пакета (Software Development Kit) для разработчиков, участвующих в программе OpenCL Early Access. NVIDIA информирует, что участники программы OpenCL Early Access уже сегодня смогут принять участие в тестировании бета-версии. Для участников программы GPU Computing Registered Developers бета-версия драйвера OpenCL будет доступна позже.
«Стандарт OpenCL был разработан на графических процессорах NVIDIA, и NVIDIA первой продемонстрировала работу кода OpenCL на GPU», сказал Тони Тамаси (Tony Tamasi), вице-президент по технологиям и контенту в NVIDIA. «То, что NVIDIA первой выпустила драйвер OpenCL для разработчиков, укрепляет ее лидирующие позиции на рынке вычислений на GPU и становится важной вехой на пути к превращению GPU в душу современного компьютера».
Стратегия NVIDIA по вычислениям на GPU базируется на архитектуре параллельных вычислений CUDA (//www.nvidia.ru/cuda), которую компания продвигает с 2006 года. Архитектура CUDA сегодня доступна через стандартные в индустрии среды программирования, включая C, Java, Fortran и Python, и поддерживает все вычислительные интерфейсы, являясь отличным дополнением к OpenCL. CUDA уже работает на более чем 100 миллионах графических процессоров NVIDIA, достигая невиданного уровня производительности в широком спектре приложений.
Для участия в программе OpenCL Early Access разработчики могут подать заявку по адресу: www.nvidia.ru/opencl
О компании NVIDIA
Компания NVIDIA (Nasdaq: NVDA) лидер в области технологий программируемой графики и изобретатель GPU высокопроизводительного процессора, который генерирует захватывающую интерактивную графику на рабочих станциях, персональных компьютерах, игровых приставках и мобильных устройствах. Продукты на базе графических процессоров GeForce® предназначены для рынка игр и развлечений, продукты на базе Quadro GPU фокусируются на рынке профессионального дизайна и визуализации, а компьютерные решения Tesla™ поставляются на рынок вычислений, требующих высокой производительности. Главный офис NVIDIA расположен в Санта-Кларе, Калифорния, а филиалы компании находятся в Азии, Европе и Америке. Подробнее на сайте
# # #
© 2009 компания NVIDIA. Все права защищены. Все названия компаний и/или названия продуктов могут являться торговыми именами, товарными знаками и/или или зарегистрированными товарными знаками соответствующих компаний, с которыми они ассоциируются. Возможности, цены, наличие и спецификации могут изменяться без предупреждения
www.nvidia.ru
Ссылки | OpenCL
Ссылки | OpenCL
Стандарты
- Стандарт OpenCL 1.1 (pdf)
Cкачать SDK с поддержкой OpenCL
- NVIDIA CUDA Toolkit
- AMD Accelerated Parallel Processing
- Intel OpenCL SDK
Тематические и обучающие ресурсы
- Графические процессоры для высокопроизводительных вычислений на Parallel.ru
- Англоязычный сайт о вычислениях на GPU
- Структурированный Online-мануал по OpenCL
- Документация ATI Stream SDK
- Документация по OpenCL от AMD
- Документация по OpenCL от Nvidia
- GPGPU.ru — русскоязычный ресурс о вычислениях на General Purpose GPU
- GPGPU.org — англоязычный ресурс о вычислениях на General Purpose GPU
- enja.org — Adventures in OpenCL: Part 1, Getting Started
- enja.org — Adventures in OpenCL: Part 1.5, C++ Bindings
- enja.org — Adventures in OpenCL: Part 2. Particles with OpenGL
- youtube-канал khronosgroup
Книги
- Основы работы с технологией CUDA (рус.)
- The OpenCL Programming Book (англ.).
- Programming Massively Parallel Processors (англ.)
- OpenCL Programming Guide (англ.)
- OpenCL in Action (англ.)
- Heterogeneous Computing with OpenCL (англ.)
Форумы
- Форум nVidia по OpenCL и CUDA
- Форум AMD по OpenCL
Дополнительное программное обеспечение
- OpenCL-Z — утилита, показывающая информацию о процессоре с поддержкой OpenCL
- nVidia Parallel Nsight — встраиваемый в MS Visual Studio набор программного обеспечения для GPGPU-разработки
- OpenCLcc — OpenCL Compiler Wrapper, программное обеспечение для компиляции и отладки OpenCL-ядер
- OpenCL Studio — IDE для разработки с использованием OpenCL
- gDEBugger — ПО для отладки, профилирования и анализа использования памяти для OpenCL на основе MS Visual Studio
- Anjuta DevStudio — IDE с поддержкой OpenCL (при добавлении в эту IDE компонента OpenCL Wizard)
OpenCL-биндинги
- С++
- Java
- Python:
- CLyther
- PythonCL
- PyOpenCL
- .NET:
- Nemerle:
- Common Lisp
- Erlang
- Haskell
- Scala
- Ruby
- Delphi
opencl.ru