LINUX.ORG.RU
решено ФорумTalks

[OpenCL] Гетерогенность CPU и GPU?


0

1

Вроде как на википедии (да и не только там) написано, что openCL - это некий стандарт написания ресурсоёмких вычислительных программ, которые должны исполняться на множестве CPU и GPU. То есть один и тот же код (один раз написанный) - должен запускаться вне зависимости где угодно.

Реально же, как я смотрю (или я чего-то недопонимаю) - ситуация совсем другая, и очень удручающая.

Есть nvidia-cuda-sdk, которая поддерживает и openCL. Но там есть один нюанс - вычисления только на GPU, но не на CPU.

Есть ati-stream-sdk, который я не пробовал, и не имею возможности - нет нужной железки.

Есть intel opencl sdk - но тут ещё хуже. Версия и вовсе есть только под венду(!) - хотя вроде как обещают, что там есть и CPU, и GPU?

Вопрос: действительно ли openCL - стандарт для написания полностью кросслплатформенных приложений, которые будут запускаться на любых CPU и на любых GPU, и, опять же, на любых операционках, или это пустой звон?

И есть ли где-нить набор библиотек openCL, не привязанный ни к nvidia, ни к intel, ни к amd?

немного не в теме, но вроде бы opencl - это стандарт языка и апи. а реализации зависят от того, на чем оно реализуется. Т.е. если бы существовал «набор библиотек openCL, не привязанный ни к nvidia, ни к intel, ни к amd», т.е. полностью не привязанный, он просто не имел бы смысла. И вопросом тут рулят совсем не разработчики софта, а разработчики железа.

stevejobs ★★★★☆ ()

У apple есть и для CPU, и для NVIDIA GPU, и для AMD GPU.

У других - как напишут

namezys ★★★★ ()
Ответ на: комментарий от namezys

>У apple есть и для CPU, и для NVIDIA GPU, и для AMD GPU.

и для Intel CPU/GPU (которые SB), надо полагать, тоже

thevery ★★★★ ()
Ответ на: комментарий от thevery

Я не знаю, может ли у них GPU ускорять. Так что про это не скажу точно но моя NVIDIA 9800 GTX+ точно может

namezys ★★★★ ()
Ответ на: комментарий от thevery

на моем SB последний snow leo не запускается даже в виртуалке

stevejobs ★★★★☆ ()
Ответ на: комментарий от stevejobs

>на моем SB последний snow leo не запускается даже в виртуалке

ну я как бы не про хакинтош говорю, а честный macbook pro

thevery ★★★★ ()
Ответ на: комментарий от thevery

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

stevejobs ★★★★☆ ()
Ответ на: комментарий от stevejobs

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

macbook pro на новых корах как бэ уже месяц как продаётся

thevery ★★★★ ()

>Есть ati-stream-sdk, который я не пробовал, и не имею возможности - нет нужной железки.

Там есть и CPU, и GPU. CPU любой, можешь попробовать и без AMD-ных железок, на Intel или VIA.

Есть intel opencl sdk - но тут ещё хуже. Версия и вовсе есть только под венду(!) - хотя вроде как обещают, что там есть и CPU, и GPU?


А тут как раз только CPU. Текущее видео Intel не поддерживает OpenCL аппаратно.

Вопрос: действительно ли openCL - стандарт для написания полностью кросслплатформенных приложений, которые будут запускаться на любых CPU и на любых GPU, и, опять же, на любых операционках, или это пустой звон?


В OpenCL есть механизм определения нужной библиотеки или библиотек под названием OpenCL ICD. То есть вендоры пишут библиотеки для работы со своим железом, а система их подхватывает и позволяет использовать одновременно.

anonymfus ★★★★ ()
Ответ на: комментарий от anonymfus

Ах, вот оно что... интересно.

Раз так, надо качнуть этот ati-stream-sdk.. и попробовать запустить что-нить на core-i3.

И то есть программа, которую я напишу с использованием openCL - должна одинаково работать на ati-stream-sdk (на процессоре intel, к примеру), и на видяхе от nvidia под cuda-sdk?

Переписывать код не придётся (я просто пока слабо понимаю сам синтаксис openCL и вообще как там программы писать - разбираюсь только потихоньку).

Мне нужно написать интегрирование многомерной функции... суммирование, иначе говоря. С использованием openCL.

BattleCoder ★★★★★ ()
Ответ на: комментарий от anonymfus

>А тут как раз только CPU. Текущее видео Intel не поддерживает OpenCL аппаратно.

вроде как Sandy уже умеет и GPU, разве нет?

thevery ★★★★ ()
Ответ на: комментарий от BattleCoder

>И то есть программа, которую я напишу с использованием openCL - должна одинаково работать на ati-stream-sdk (на процессоре intel, к примеру), и на видяхе от nvidia под cuda-sdk?

Во-первых, реализации OpenCL могут быть неполными. Во-вторых, они сейчас очень глючные. В-третьих по порядку, но первое по важности, для получения высокой производительности требуется очень серьёзная ручная оптимизация под конкретное железо.

anonymfus ★★★★ ()

> Есть ati-stream-sdk, который я не пробовал, и не имею возможности - нет нужной железки.

Когда их OpenCL дрова ставятся без установленного драйвера - они говорят, что будут работать только за счёт CPU. Так что пробовать можно.

atrus ★★★★★ ()
Ответ на: комментарий от RussianNeuroMancer

> А где их взять? Или они являются частью ATI Stream SDK?

Похоже на то. По крайней мере драйвер для венды идёт вместе с SDK (я его ставил до комплекту с остальными дровами).

atrus ★★★★★ ()
Ответ на: комментарий от atrus
* dev-util/ati-stream-sdk-bin
     Available versions:  ~1.4.0_beta!s[1] 2.01!f!s[2] 2.2!s[2] 2.3!s[2] {doc examples livecd}
     Homepage:            http://ati.amd.com/technology/streamcomputing/sdkdwnld.htm
     Description:         Enable compiling code and loading it on ATI/AMD GPU

Если я поставлю этот пакет - у меня будет то, что мне нужно?

BattleCoder ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.