26 March 2009

OpenCL от nVidia

GPGPU

Как известно, технология 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.
Tags: OpenCL CUDA nvidia khronos gpgpu
Hubs: GPGPU
+36
16.3k 18
Comments 16
Ads