LINUX.ORG.RU
 
confluent_anonymous

Вышла спецификация OpenCL 1.1, позволяющая использовать GPU для параллельных вычислений


0

0

Технологическая группа Khronos объявила о выходе обновлённой версии открытого языка для кросс-платформенных параллельных вычислений OpenCL 1.1.

OpenCL определяет API и расширения языка C для параллельного программирования, предусматривая возможность задействовать для решения задач GPU видеокарт. Спецификация OpenCL 1.1 предоставляет увеличенную производительность и функциональность и является обратно совместимой с предыдущей версией.

Работа по написанию новой версии OpenCL заняла около полутора лет. В работе над стандартом приняло участие более 30 компаний, среди которых: IBM, NVIDIA, AMD, Apple, ARM, Electronic Arts, Qualcomm, Texas Instruments, Toshiba, Intel, национальная лаборатория Los Alamos, Nokia.

Основные изменения в спецификации:

  • Новые типы данных, включая трёхкомпонентные векторы и дополнительные графические форматы;
  • Обработка команд и буферов с нескольких хостов и на нескольких устройствах одновременно;
  • Операции на регионах буфера, включая чтение, запись и копирование 1D, 2D и 3D прямоугольных регионов;
  • Расширенное использование события для управления потоком исполнения команд;
  • Дополнительные встроенные Си-функции, такие как целочисленный clamp, shuffle и асинхронные разряженные копии;
  • Улучшено взаимодействие с OpenGL путём эффективного взаимного использования изображений и буферов и связывания событий OpenCL и OpenGL.

>>> Подробности;

>>> Обзор OpenCL;

>>> Подготовлено по материалам opennet.ru


[#]  
Lindows

Вот это отличная новость. Хотеть много софта на опенцл!

Хотя что то мне подсказывает, что не все так просто будет. Наверняка майкрософт придумает(или уже?) аналогичные инструменты, завязанные на их платформе, как, например, Direct3D.

* ()
[#] Ответ на: комментарий от Lindows 16.06.2010 0:59:15  
note173

какого софта? штука очень специфичная

*** ()
[#]  

Вопрос, который я задавал, но так и не ответили:
Есть ли возможность использовать OpenCL для декодирования видео при помощи видеокарты?

***** ()
[#] Ответ на: комментарий от Ttt 16.06.2010 1:25:33  
note173

да, но зачем?
vdpau (nvidia) и uvd (ati, intel?) как раз этим и занимаются

*** ()
[#] Ответ на: комментарий от Ttt 16.06.2010 1:25:33  
confluent_anonymous

> Есть ли возможность использовать OpenCL для декодирования видео при помощи видеокарты?

Программа MovieGate для MacOS X Snow Leopard использует OpenCL для кодирования и декодирования видео.

http://nvworld.ru/news/new-433/

http://www.apple.com/downloads/macosx/video/moviegate.html

* ()
[#] Ответ на: комментарий от note173 16.06.2010 1:43:16  

Они декодируют только те форматы, которые заложил производитель. И у каждого производителя видеокарт свой интерфейс взаимодействия с плеером.

***** ()
[#] Ответ на: комментарий от confluent_anonymous 16.06.2010 1:45:25  

>Программа MovieGate для MacOS X Snow Leopard использует OpenCL для кодирования и декодирования видео.

Она, как я понял, конвертирует видео или что-то типа того. А меня интересовало декодирование «в реальном времени», для воспроизведения.

***** ()
[#]  
eveel

Если стоит задача манипуляции(*) с большим количеством матриц 100x100 чисел с плавающей запятой, то уместно ли использование OpenCL?

(*) Пробежаться, посчитать сумму строк/столбцов, проверить связанность по корреляционной формуле, добавить/выбросить лишние строки, всё в таком духе.

** ()
[#]  

Хорошая новость.

** ()
[#] Ответ на: комментарий от eveel 16.06.2010 5:13:14  

> Пробежаться, посчитать сумму строк/столбцов, проверить связанность по корреляционной формуле

Если нужно это сделать один раз, то заталкивание данных на видеокарту будет дольше, чем вычисление. Т.е. как и в случае с процессором вы упрётесь в пропускной канал оперативной памяти. Если нужно это делать для одних и тех же данных много раз - то по идеи выигрыш может быть, т.к. пропускной канал, например Radeon HD 5970 есть GDDR5 4 ГГц QDR * 256 бит * 2. У оперативной памяти и шина меньше и частоты ниже.

> чисел с плавающей запятой

На nvidia, по крайней мере, которая у меня, блоков вычисления double float в 8 раз мешьше, чем одинарных float. Иногда это нужно учитывать.

()
[#] Ответ на: комментарий от eveel 16.06.2010 5:13:14  

Если задача хорошо разлагается на параллельные потоки с одинаковым кодом, то смысл есть. Если нет - то нужно смотреть, можно упереться в передачу данных и в serialization. Последнее - это когда разные плечи if будут выполняться последовательно, и толку от десятков процессоров в рабочей группы будет чуть больше, чем от одного.

* ()
[#] Ответ на: комментарий от Ttt 16.06.2010 1:25:33  

есть декодеры cuda под оффтопиком

** ()
[#]  

> 1D, 2D и 3D прямоугольных регионов;

> прямоугольных регионов

> 1D

непАнятнА... (-__-" )

anonymous ()
[#]  
adarovsky

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

Демки, как всегда, внушали.

**** ()
[#] Ответ на: комментарий от Ttt 16.06.2010 1:25:33  
stalkerg

>Есть ли возможность использовать OpenCL для декодирования видео при помощи видеокарты?

Да можно использовать как для расчёта компенсации изображения так и для ключевых кадров. Правда только в последней версии можно будет избежать двойной передачи данных при выводе изображения через OpenGL.

Другой вопрос, что нужно переписывать декодеры на OpenCL и не факт, что для всех форматов будет прирост производительности (вспомним WMV со своим float point) особенно там где много логики и мало последовательных вычислений.

На видео карточках не много-поточные вычисления, там одно поточные (почти строго последовательные) применимые одновременно ко многим данным и любой if в системе будет серьёзно понижать производительность так как ветвления так такого на GPU нету (выполняем 2 ветки программы, а потом откидываем то, что не нужно). Короче параллелизм по данным но не по программе.

Это я всё к тому, что от CPU в данных процессах мы ещё не скоро откажемся.

**** ()
[#]  
Viglim

Я вот одного не могу понять, если вычисления на GPU это так круто, и все так делают, и производительность в разы выше, чем на CPU, то зачем в компьютерах всё еще есть этот самый CPU?

* ()
[#] Ответ на: комментарий от Viglim 16.06.2010 9:45:49  

для запуска bios надо полагать)))

anonymous ()
[#]  
aptyp

Ммм.Рад.Надеюсь мануал нормализовали.

** ()
[#] Ответ на: комментарий от Viglim 16.06.2010 9:45:49  

Viglim> Я вот одного не могу понять, если вычисления на GPU это так круто, и все так делают, и производительность в разы выше, чем на CPU, то зачем в компьютерах всё еще есть этот самый CPU?

Затем, зачем компьютер состоит не из звуковой карты.

**** ()
[#] Ответ на: комментарий от Viglim 16.06.2010 9:45:49  
Reset

Почитать про то какие именно вычисления делаются на GPU не судьба?

***** ()
[#]  

Интересно, кто нибудь вообще пишет на нем? Когда то давно, еще до выхода первой Куды, мыла мысль написать че нибудь использующее шейдерные процессоры для вычислений, но так руки и не дошли по нормальному разобраться, с OpenCL это должно быть получше... Кто нибудь щупал, как оно?

anonymous ()
[#] Ответ на: комментарий от Reset 16.06.2010 10:18:26  
Viglim

Почитал, по сути любые вычисления делаются на GPU.

* ()
[#]  
Genuine

новость, конечно, хорошая.

Можно ли OpenCL "пощупать" в качестве числодрбилки на встроенной ati x1250 или он только для новых поколений карт?

*** ()
[#] Ответ на: комментарий от note173 16.06.2010 1:43:16  
mikhalich

>vdpau (nvidia)

в свободных дровах нет и не планируется. Так что выкручиваются кто как может.

** ()
[#] Ответ на: комментарий от Viglim 16.06.2010 10:50:02  
Reset

Плохо читал. Не любые.

***** ()
[#] Ответ на: комментарий от Viglim 16.06.2010 10:50:02  

Внимательнее читать надо. Сто раз уже про это говорилось. GPU - это просто очень много параллельных вычислителей, молотилок. В нём практически полностью отсутствует сложная управляющая логика: управление программой, виртуальная адресация, переключение задач, нет предсказания ветвлений и т. д. Никакую ОС на нём в жизни не запустишь. В отличие от CPU

anonymous ()
[#]  
GoNaX

Обьясните популярно какой реальный профит можно сейчас с этого поиметь?

P.S. Video - NVIDIA Quadro NVS 320M

* ()
[#] Ответ на: комментарий от GoNaX 16.06.2010 11:41:46  
theos

Профит есть на макоси. А в этих ваших линуксах - врядли.

*** ()
[#] Ответ на: комментарий от GoNaX 16.06.2010 11:41:46  
>>-----Цитата---->>

Обьясните популярно какой реальный профит можно сейчас с этого поиметь?

P.S. Video - NVIDIA Quadro NVS 320M

<<-----Цитата----<<

В вашем случае проще использовать Куду. На мой субъективный взгяд там нужно существенно меньше телодвижений для адаптации программы, чем в случае с OpenCL.

*** ()
[#] Ответ на: комментарий от Viglim 16.06.2010 9:45:49  

>Я вот одного не могу понять, если вычисления на GPU это так круто, и все так делают, и производительность в разы выше, чем на CPU, то зачем в компьютерах всё еще есть этот самый CPU?

Во первых, это специфичные и именно вычисления.

во вторых, видеокарта дополняет процессор, а не заменяет его.

***** ()
[#] Ответ на: комментарий от Vudod 16.06.2010 11:53:47  
Reset

Согласен. Программу изначально удобно писать и оптимизировать под CUDA. А потом, если есть смысл, то можно и на OpenCL перенести. Хотя смысла пока нет, ибо OpenCL нормально пока только на nvidia работает :)

***** ()
[#]  

>NVIDIA, AMD, Intel

лучше бы дрова пилили.

>IBM, ARM, Qualcomm, Texas Instruments, Toshiba, Nokia

лучше бы железом занимались и его поддержкой в линукс

>Apple Electronic Arts, национальная лаборатория Los Alamos

жалкие неудачники.

***** ()
[#] Ответ на: комментарий от Reset 16.06.2010 13:04:23  
Zodd

Появится ли что-нибудь посложнее чем blas?

*** ()
[#] Ответ на: комментарий от AVL2 16.06.2010 13:05:53  
Zodd

> лучше бы дрова пилили

Это поважнее будет, профита больше.

*** ()
[#] Ответ на: комментарий от Zodd 16.06.2010 13:06:40  
Reset

lapack есть, правда не бесплатно.

***** ()
[#]  
namezys

Apple работает. Точнее платит

*** ()
[#] Ответ на: комментарий от AVL2 16.06.2010 13:05:53  
namezys

>> Apple Electronic Arts, национальная лаборатория Los Alamos

> жалкие неудачники.

Которые его и сделали. И убедили всех им пользоваться. И распостранили это не весь мир open source

*** ()
[#]  

Кстати, кто-нибудь объяснить убогому, зачем эта штука понадобилась Qualcomm?

Насколько я понимаю, OpenCL позиционируется как уровень абстракции над конкретным вычислителем, но ARM и GPU настолько различны по своей природе (вернее по специфике вычислений, которые на них стоит гонять), что общий смысл сего стандарта от меня ускользает.

* ()
[#] Ответ на: комментарий от vaulter 16.06.2010 14:33:43  
namezys

Во первых - openCL должен работать даже, если отсутсвует специфичный GPU. Во вторых - кто мешает рядом с ARM вешать сопроцессор (как это сделали creative)

*** ()
[#] Ответ на: комментарий от namezys 16.06.2010 13:34:08  

>И убедили всех им пользоваться. И распостранили это не весь мир open source

безудержные фантазии.

***** ()
[#] Ответ на: комментарий от AVL2 16.06.2010 14:49:21  
namezys

Раскажите мне о другом стандарте, кроме openCl

*** ()
[#] Ответ на: комментарий от Ttt 16.06.2010 2:15:42  

>Она, как я понял, конвертирует видео или что-то типа того. А меня интересовало декодирование «в реальном времени», для воспроизведения.

а смысл? для этого есть спец. интерфейсы типа vdpau. Они ускоряют не только просчет, но и вывод.

cuda или opencl имеет смыл использовать как раз тогда, когда необходимо провести именно расчеты с возвратом результатов обратно в компьютер.

***** ()
[#] Ответ на: комментарий от anonymous 16.06.2010 11:24:47  

> GPU - это просто очень много параллельных вычислителей, молотилок.

Вот когда наконец-то ядро GPU посадят рядом с CPU, чтобы он получил прямой доступ ко всем этим дробилочкам! Вот тогда!..

* ()
[#] Ответ на: комментарий от mikhalich 16.06.2010 11:12:17  
note173

в свободных ничего нет

*** ()
[#] Ответ на: комментарий от AVL2 16.06.2010 16:32:51  
namezys

И как поведет себя код на cuda, если нет видюхи от nvidia?

*** ()
[#] Ответ на: комментарий от AVL2 16.06.2010 16:36:31  

>а смысл? для этого есть спец. интерфейсы типа vdpau. Они ускоряют не только просчет, но и вывод.

Вот будет единый интерфейс для карт разных производителей и появится возможность добавлять поддержку других форматов (или хотя бы выйдут карты с поддержкой VP8) — то пожалуйста. А сейчас либо OpenCL, либо вообще рассчитывать только на CPU.

***** ()