LINUX.ORG.RU

OpenCl вычисления на ati r600

 amdгады, , , ,


1

2

Приветствую лор!
Лежат у меня две рабочие карты на процессоре r600, задумался как их можно использовать в OpenCL вычислениях сами знаете чего... :)
В официальном APP SDK от amd поддержка OpenCL начинается с r700. Насколько помню, в r700 не было внесено каких-то принципиальных новшеств в архитектуре по сравнению с r600. Не вижу причин, почему нельзя использовать карты на этих процессорах для opencl, кроме отсутствия поддержки со стороны amd из-за каких-то маркетинговых мотивов. В общем, как можно реализовать OpenCL вычисления для этих процессоров?

Как я понял, можно обойтись в некотором роде эмуляцией OpenСL через OpenGL. Не знаю насколько это будет быстро, но хочу узнать. Нарыл вот что: http://dri.freedesktop.org/wiki/GalliumCompute#R600
Кажется это то что надо. Оказывается gallium тот еще комбайн. Кто-нибудь пробовал это собирать? Только я сам принцип не очень понял, gallium же будет работать с любым драйвером? И сможет ли конечное приложение это все использовать, т.е. это все будет доступно через стандартную реализацию opencl api?

★★★★

Последнее исправление: Radius (всего исправлений: 3)

Ответ на: комментарий от bhfq

ну это с юмором. Тем более не мат. Хорошо, исправлю на amdгады. :)

Radius ★★★★
() автор топика

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

RussianNeuroMancer ★★★★★
()

Не вижу причин,

Если ты чего то не видишь это не значит что этого нет.

amdгады

Я все равно за бан!

bitcoin

Школьник зарабатывает на пирожки?

По теме:

Как написал выше RussianNeuroMancer в свободных дровах реализованно только с чипов Evergreen. Если есть желание добавить поддержку r700 реально, с r600 вообще туго.

Behem0th ★★★★★
()

я на выходных собрал,
получаю
[code]
/home/downloads/git/opencl-example/loop
radeon: Failed to get PCI ID, error number -13
Usage: loop kernel_name iterations
[/code]
собирал без libclc, может по этому и не работает

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

Скорей всего изза libclc, не зря же его патчили. Я драйвер сам не пробовал (за неимением карточки) а стей трекер просто собирал, с ллвм 3.1 собирается без ошибок.

Behem0th ★★★★★
()

кроме отсутствия поддержки со стороны amd из-за каких-то маркетинговых мотивов.

Потому что во времена этих видюх были только шейдерные вычисления.
Наверняка, DP зарезан по самое не могу (все-таки это игровые карты).
Более того, потом вышла 5ххх серия и этот хлам стал не нужен.

devl547 ★★★★★
()
Ответ на: комментарий от Novell-ch

radeon: Failed to get PCI ID, error number -13

У тебя отрытый драйвер?

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

Кстати у нвидии поддержка Opencl включена как раз с тех времен.

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

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

Но это не мешает даже r700 быть быстрее подавляющего числа решений от других производителей. Область вычислений пока новая, и действительно специализированных решений пока мало. Если развивать эту тему, то всплывут специализированные SHA-микропроцессоры под это дело.

Кстати там написано для r700 «Only partial OpenCL support is possible, support through vertex shaders.». Для r600 видимо аналогично.

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

Это r600. Про это тема. Реализация какая-то есть в открытых дровах - про это речь. Интересно мнение тех, кто проверял.

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

4200-какие-то-там это r600. 46хх и 48хх - это r700. Вон по ссылке в шапке внизу есть ссылка на табличку даже.

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

Но это не мешает даже r700 быть быстрее подавляющего числа решений от других производителей.

Но у вас-то чипы R600. Даже если кто-то возмётся написать худо-бедно что-то ускоряющую реализацию OpenCL для R700, вам-то как это поможет?

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

Так по ссылке внизу вроде готовое решение для r600. gallium-compute-r600 я имею ввиду.

Кстати если посмотреть на http://www.x.org/wiki/RadeonFeature, то r600/r700 спаяны в одном столбце. Это говорит о том, что между ними действительно минимум отличий в архитектуре. Получается не только я один так считаю. Статус OpenCL для них указан TODO. Но тем не менее на странице GalliumCompute выложены пропатченные компоненты для r600.

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

Так по ссылке внизу вроде готовое решение для r600. gallium-compute-r600 я имею ввиду.
Но тем не менее на странице GalliumCompute выложены пропатченные компоненты для r600.

Вы забываете, что r600 - это название драйвера.

Статус OpenCL для них указан TODO.

Только если кто-то запилит их поддержку в свободное время. С коммерческой точки зрения смысла в реализации их поддержки нет (так же, как например нет смысла в декодере H.264 на шейдерах, хотя его и можно написать, он снимет с CPU максимум четвёрть вычислительной нагрузки).

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

Ну р600 это общее название архитектуры процессора для этих карт. Логично что gallium-compute-r600 - это драйвер для них. У меня только небольшие непонятки, ведь это все работает совместно с открытым драйвером? Или с fglrx тоже?

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

Драйверов для Радеонов сейчас три штуки: r300, r600 и radeonsi. Найдите в списке r700. Его нет в списке, потому что r600 отвечает за поддержку всего железа от собственно R600 до NI. Теперь понятно, почему gallium-compute-r600 называется именно так?

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

Путаница однако. Теперь понятно, спасибо. Значит тухлая затея, если поддержка opencl декларирована только для Evergreen и Northern Islands.

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

в открытых дровах это только начали пилить.

если вам охота чтоб работало - ставьте СДК от амд и блоб.

если охота поиграться с галлиумом - флаг в руки.

но я бы на последнем не стал писать чего-либо реально считающего пока что

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

Да блоб и сдк то стоит, работают одна 4850 и еще одна 5830 на другом компике.

Есть еще две карточки относительной новизны (2600 и 3850), но которые не поддерживаются СДК. Тема как раз создавалась в надежде их приспособить. Как выше упоминалось, возможно реализовать эти вычисления через шейдеры. Где-то встречал рабочий вариант с установкой opencl 1.0 и еще какими-то нехитрыми манипуляциями, но у них производительность получалась на уровне цпу. Поэтому даже не очень хочется пробовать. Если бы была хотя бы треть производительности от 4850 с офф сдк, тогда стоило бы повозиться.

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

считать имеет смысл на 6950+

на остальных нет Double и на нормальном ЦПУ быстрее.

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