LINUX.ORG.RU

а что софт делает

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

Я как бы ничего не имею против AMD, но OpenCL просто дикий тормоз по сравнению с CUDA. OpenCL будет всегда медленнее, с меньшими возможностями. Одно дело, если софт уже написан и деваться некуда, но изначально загоняться себя в такие ограничения - это глупо.

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

Если софт уже написан на куде и деваться некуда - это понятно, но зачем с самого начала привязывать себя к одной аппаратно/программной платформе? У OpenCL нет предпосылок к торможению. Есть какие-то проблемы у Nvidia CUDA с производительностью OpenCL? Поправят.

tim239 ★★
()
Ответ на: комментарий от MuZHiK-2

OpenCL просто дикий тормоз по сравнению с CUDA.

твои данные устарели. Сейчас проигрыш на уровне 10-30% в большинстве случаев, иногда примерно одинаковая производительность (а иногда и в разы проигрывает)

Sahas ★★★★☆
()
Последнее исправление: Sahas (всего исправлений: 1)
Ответ на: комментарий от tim239

OpenCL и близко не представляет тех возможностей, что есть у CUDA. Даже спорить не о чем. Вопрос в том, зачем изначально решать задачу на отсталом продукте. Про возможности оптимизации на CUDA вообще молчу.

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

Даже спорить не о чем.

Как в таких случаях раньше часто выражались на ЛОРе - «так и запишем, аргументов нет.»

Про возможности оптимизации на CUDA вообще молчу.

Правильно, тред не об этом.

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

Удачно ты Тимурка шлангануть решил. Просто открой списки изменений у CUDA 7 и 8, и расскажи, что из этого умеет твой OpenCL.

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

Где CUDA проигрывает OpenCL?

не знаю, я такого не писал. OpenCL проигрывает CUDA, но уже не так сильно, как раньше

Sahas ★★★★☆
()
Ответ на: комментарий от MuZHiK-2

К сожалению, в некоторых случая просто выбора нет. Например - ARM'ы, где есть видео ядро с OpenCL, но нет CUDA, как класса.

К тому же не забывай, что сейчас на рынке появится много GPU Radeon с OpenCL по бюджетным ценам (когда народ поймёт, что майнинг не такой профитный, как был весной). Поэтому для некоторых проектов OpenCL вполне может быть нужен.

Norgat ★★★★★
()
Ответ на: комментарий от MuZHiK-2

Где CUDA проигрывает OpenCL?

Судя по недавним новостям, например GPU рендере в Blender: https://wiki.blender.org/index.php/Dev:Source/Render/Cycles/OpenCL

На странице есть ссылка на таблицу в google doc, где есть результаты тестов и описание стендов.

Aber ★★★★★
()
Ответ на: комментарий от MuZHiK-2

Просто открой списки изменений у CUDA 7 и 8, и расскажи, что из этого умеет твой OpenCL.

Приятно, что OpenCL назвали «моим». Почитал. Рантайм компиляция была всегда, half float был всегда как extension, общие указатели появились в версии 2.0. Остальное - nvidia'вские либы и плюшки для тех, кто мешает вместе CPU и device код.

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

Эти, как ты говоришь плюшки, как раз и обеспечивают преимущество CUDA. Расскажи, мне, например, на какой стадии находится поддержка OpenCL в библиотеках MPI.

MuZHiK-2 ★★★★
()
Ответ на: комментарий от Norgat

Вот, OpenCL годится только для пользовательских задач, особенно на нищебродском железе. Для серьезных вычислений - только CUDA. Автор же не озвучил спектр задач, поэтому выбор OpenCL может быть ошибочным.

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

Автор же не озвучил спектр задач, поэтому выбор OpenCL может быть ошибочным.

Вангую ускорение Brainflayer на GPU.

tim239 ★★
()
Ответ на: комментарий от MuZHiK-2

Расскажи, мне, например, на какой стадии находится поддержка OpenCL в библиотеках MPI.

На такой же, на какой линковка с любой либой в MPI - просто работает. А что, в куде надо mpicc и nvcc как-то дружить специально?

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

Если щелкнуть на NVidia GTX 1060 то можно увидеть, что написанно CUDA, затем можно сравнить цифры с rx480 из этой же таблицы.

НЕ вижу в упор, где там про CUDA написано. Все бенчмарки на OpenCL. Более того, по твоей ссылке есть кое-что интересное:

OpenCL works fine on NVIDIA cards, but performance is reasonably slower (up to 2x slowdown) compared to CUDA, so it doesn't really worth using OpenCL on NVIDIA cards at this moment.

MuZHiK-2 ★★★★
()
Ответ на: комментарий от tim239

На такой же, на какой линковка с любой либой в MPI - просто работает. А что, в куде надо mpicc и nvcc как-то дружить специально?

Ты сразу выдал в себе дилетанта, который не решает сложных задач на GPU. Иначе бы не нес этот бред. Потому что при необходимости решать задачи на кластерах с GPU на нескольких узлах, без MPI никуда. А MPI имеет прямую поддержку CUDA, например прямое копирование данных в память устройства при получении сообщений. Это упрощает и повышает эффективность гибридных вычислений. И твой OpenCL оказывается бесполезной игрушкой для нищих.

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

НЕ вижу в упор

По ссылке google doc, если мышку навести на ячейку с NVidia GTX 1060, появляется popup с таким текстом:

Arch Linux, kernel 4.8.13
driver version 16.40.348864
CPU: Intel i7-6700 3.4ghz, 4 core 8 thread
GPU using CUDA
Так там написано, я не знаю нет ли там ошибок, насколько коректно там все написано, просто запомнилась такая новость. И как мне кажется, по комментариям, у многих сложилось впечатление что OpenCL от AMD оказалось не хуже CUDA.

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

На телефоне никаких попапов не всплывает. В статье речь идет только про OpenCL, поэтому что они имели ввиду в том попапе можно только гадать.

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

Там действительно все написано неоднозначно, единственной указание на то что nvidia запускалась с сuda только в этом popup, который на телефоне не открывается. Но как я сказал, когда эта новость появилась, кучу народа обрадовалось, что мол OpenCL круче CUDA в отдельно взятом рендере. Так что если это был неаккуратный вброс, то он удался. Потому как для многих сложилось такое впечатление. Спорить больше не буду. Я не в теме :)

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

Я думаю, возможно они имели ввиду, что CUDA была установлена, или считают, что OpenCL работает через CUDA. То, что реализация OpenCL у Nvidia достаточно кривая и тормозная - известно всем, поэтому странно, что кто-то вообще их сравнивает.

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

Ты сразу выдал в себе дилетанта, который не решает сложных задач на GPU.

Эх, если бы.

Иначе бы не нес этот бред.

Где бред? MPI это стандарт, как и OpenCL. И да, я не запускал MPI вместе с кудой.

Потому что при необходимости решать задачи на кластерах с GPU на нескольких узлах, без MPI никуда.

Согласен. Но есть альтернативы, например ocland и rCUDA.

А MPI имеет прямую поддержку CUDA, например прямое копирование данных в память устройства при получении сообщений. Это упрощает и повышает эффективность гибридных вычислений.

В какой это версии стандарта? Есть только поддержка в трёх конкретных реализациях MPI.

И твой OpenCL оказывается бесполезной игрушкой для нищих.

Вот что самое крутое в OpenCL - когда понадобится, я могу пойти в исходники Open MPI (а мне не впервой) и дописать btl чтобы он с сети кидал данные на карту. Видел, что память - SVM и кидал в такую же на своём хосте. Но это на самом деле даст копейки - когда количество операций линейно зависит от количества данных, то выигрыша от GPU вообще может не быть из-за копирования по сети, а когда вычислений больше чем данных то асимптотика за нас и при достаточном количестве данных можно даже позволить себе двойное копирование.

Подумай сам над парой вопросов:

  1. Если OpenCL это бесполезная игрушка для нищих, то почему его все пилят, даже nvidia втихоря?
  2. Почему хэши для криптовалют считают в основном на OpenCL, а нейросети в основном на CUDA?
tim239 ★★
()
Ответ на: комментарий от tim239

Где бред? MPI это стандарт, как и OpenCL. И да, я не запускал MPI вместе с кудой.

Что говорит об отсутствии сложных задач.

Согласен. Но есть альтернативы, например ocland и rCUDA.

И ради одного тебя, любимого, будут ставить кластер раком и прикручивать всякие поделки, вместо того, чтобы ты использовал уже настроенное и готовое?

В какой это версии стандарта? Есть только поддержка в трёх конкретных реализациях MPI.

Где я говорил про стандарт? Я знаю как минимум 5 реализаций MPI, поддерживающих CUDA.

Вот что самое крутое в OpenCL - когда понадобится, я могу пойти в исходники Open MPI (а мне не впервой) и дописать btl чтобы он с сети кидал данные на карту.

Еще раз - ни на одном вменяемом кластере тебе не дадут творить такое дерьмо.

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

Есть моменты, когда синхронизаций много, и они должны быть максимально быстры.

Если OpenCL это бесполезная игрушка для нищих, то почему его все пилят, даже nvidia втихоря?

Для галочки, чтобы нищеброды, когда купят Nvidia, первое время могли гонять старый софт, пока не перепишут на CUDA. Собственно, поддержка OpenCL у них посредственная.

Почему хэши для криптовалют считают в основном на OpenCL, а нейросети в основном на CUDA?

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

MuZHiK-2 ★★★★
()
Ответ на: комментарий от i-rinat

Сколько NVIDIA заплатила тебе за такие слова?

Нисколько, конечно же. Просто надо быть реалистом и использовать то, что позволяет выжимать максимум из имеющегося железа.

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

Почему под OpenCL, а не CUDA?

Это вопрос про API, а не про железо. Так-то OpenCL работает и на NVIDIA, только они его реализовали криво. Боятся, видимо, что на CUDA меньше завязываться будут, а завязанные на CUDA приложения улучшают продажи их железа.

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

Это вопрос про API, а не про железо.

CUDA = Nvidia. OpenCL != Nvidia. Куда уж очевиднее?

Боятся, видимо, что на CUDA меньше завязываться будут, а завязанные на CUDA приложения улучшают продажи их железа.

OpenCL - это полубесполезная фигня. Посмотри на поддержку устройств в OpenMP: это типа унифицированно, но нахрен никому не нужно. Люди продолжают использовать OpenACC и CUDA. Та же самая история и с OpenCL: типа унифицированно, но цена унификации слишком высока.

Другой вопрос в скорости разработки и принятии стандартов вроде OpenCL. Слишком медленно. Nvidia успевает реализовать кучу плюшек в CUDA, и клиенты получают возможности и улучшения сразу, оправдывая вложения в железо.

Простой пример. Стандарт OpenCL 2.1 был принят еще в ноябре 2015 года, но его поддержки до сих пор нет ни у AMD, ни у Nvidia. Более того, уже OpenCL 2.2 успели принять. И встает вопрос: налива такое счастье, когда 2 года уже не могут реализовать предпоследнюю версию стандарта? С CUDA же куда все проще - воткнул SDK и сразу получаешь все плюшки.

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

Почему хэши для криптовалют считают в основном на OpenCL, а нейросети в основном на CUDA?

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

Садись, два. Смешно. Правильный ответ - потому что AMD поддерживает 32-битные целочисленные сдвиги за один такт, см. amd_bitalign. А нейросети на куде потому что много памяти, fp16 и в каждом первом ноуте карта от nvidia.

Где бред? MPI это стандарт, как и OpenCL. И да, я не запускал MPI вместе с кудой.

Что говорит об отсутствии сложных задач.

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

tim239 ★★
()
Ответ на: комментарий от MuZHiK-2

Алё, мужык. На дворе 2017-й. Ценится переносимость, а не эффективность. Что плохо, поскольку из-за распространённости данного подхода кругом жабаскрипт и HTML в десктопных приложениях, но хорошо, потому что другая крайность выглядела бы примерно как ассемблерные вставки и прибито гвоздями к Win API. Прикладной софт переползает с вендорлкнутой пропиетарной CUDA на расово верный кроссплформенный OpenCL. В такой-то стандарт в индустрии, как Nuke, добавили недавно.

LittleKawaiiNeko ★★
()
Последнее исправление: LittleKawaiiNeko (всего исправлений: 3)
Ответ на: комментарий от tim239

Садись, два. Смешно. Правильный ответ - потому что AMD поддерживает 32-битные целочисленные сдвиги за один такт, см. amd_bitalign. А нейросети на куде потому что много памяти, fp16 и в каждом первом ноуте карта от nvidia.

Смешной ты, мамкин кулхацкер. Ты только что повторил ровно то, что я тебе сказал, просто в другой форме. Считать хэши нафиг никому из серьезных дядей не надо, понимаешь? Ну, можешь ты укусить себя за локоть, и что? Твоя жизнь станет лучше? Посмотри в топ-500 кластеров и найди там в 1й сотне хотя бы АМД. Все потому, что что там не хэши считают, а вещи посложнее и посерьезнее. Именно поэтому Nvidia и не делает твой сдвиг. Потому что неуловимый Джо. Как только рынок потребует - будет.

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

Пока ты ее там будешь запихивать, люди уже все реализуют и пойдут дальше, пихатель.

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

Посмотри в топ-500 кластеров и найди там в 1й сотне хотя бы АМД. Все потому, что что там не хэши считают, а вещи посложнее и посерьезнее.

Самому не нравится хайп по поводу криптовалют - но если бы у тебя была ферма из AMDшных карт, по мощности на уровне топ100, на которой ты считаешь хэши - стал бы ты палить её в top500?

И, кстати, на каждом узле кластера из топ500 может работать OpenCL - на процессоре, видяхе или Xeon Phi. В случае NVidia имя OpenCL платформы таким и будет - «NVidia CUDA». А вот сама куда там будет работать только на тех узлах, где есть NVidia видяха.

Пока ты ее там будешь запихивать, люди уже все реализуют и пойдут дальше, пихатель.

На кластере? Это те же самые серьёзные люди, которые решают серьёзные задачи? Простым людям обычно нужно чтобы работало на оборудовании заказчика. И быстро. И чтобы экран при этом не тормозил. И чтобы вот на этом компе работало, и на том, и вот на той кофеварке. Так что такое пихательство себя оправдывает.

У куды есть свои плюсы, но блин. Вот ты пришёл в тред и ТС из него похоже смылся в ужасе. Можешь его привлечь чем-нибудь - расписать там свои контактные данные и какие суперсложные задачи ты решал на уже настроенных готовых кластерах с поддержкой куды в MPI. Чтобы вернуть дискуссию из русла «CUDA vs OpenCL» в русло хотя бы «требуется специалист».

tim239 ★★
()
Ответ на: 123 от Proxerboss

По почте - <мой ник> @yandex.ru. Но за куду не возьмусь, только если OpenCL.

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