Счастливый Конец
Счастливый Конец личный блог
28 ноября 2016, 22:25

Расчет на видеокарте, помогите с картой

Ситуация такая: скучно мне стало трейдингом заниматься,
новых идей пока не приходит в голову,
да и слегка бессмысленное это времяпрепровождение.
Решил тряхнуть стариной и поудовлетворять свое любопытство
(за свой счет) в области которой когда-то занимался,
а именно сворачивание белков (мол. биология).
Ученый из меня не вышел, а любопытство осталось,
да и задача считается до сих пор нерешенной.
Вот ученые они удовлетворяют свое любознательность либо за счет бюджета,
либо за счет грантодателей. А я вот за счет рынка, хехе.

Короче, решил переписать часть алгоритмов на CUDA,
чтобы считать на видеокарте некоторые места быстрее.
И выходит у меня, что на видеокарте ускорение примерно в 100 раз (т.е. два порядка)
по сравнению с обычным 4.0 ГГц Core i7-4790K (8 ядер).
На двухпроцессорной станции с зионам ситуация не лучше, видеокарта рвет даже зионы.
В алгоритме много матричных операций, что очень удобно для видеокарт и не очень для
универсальных процессоров.
Причем видеокарта у меня старовата уже, GTX 580.
Хочется купить GTX 1080, но оно от 40 до 60тр нынче.
А теслу за 350тр я как то пока еще не готов покупать.
Вот я в сомнениях, так уж ли много я получу от апгрейда?
Если скажем, там прирост еще в два-три раза, то я, понятное дело, понесусь в магазин.
А если 10-15% прирост — то не особо и нужно. Правильно?

Есть ли на смартлабе камрады, которые готовы запустить мою тестовую программу,
которая поработает 2 секунды и скажет сколько времени занял расчет.
68 Комментариев
  • bstone
    28 ноября 2016, 22:31
    Эм, расчет займет две секунды :)
      • bstone
        28 ноября 2016, 22:53
        Счастливый Конец, это твердая гарантия, т.к. программа «поработает 2 секунды». Ну а если шутки в сторону, то могу запустить на gtx 1060. Это близко к 1080, ядер чуть меньше и шина урезана, но для вычислительных задач она где-то на 15% отстает от 1080 всего. Относительно gtx 580 прирост в 2-3 раза возможен легко.
        • Dmitry 500% Sheptalin
          28 ноября 2016, 23:16
          bstone, gtx 1060. Это близко к 1080,

          раза в 4 медленней )
          • bstone
            28 ноября 2016, 23:34
            Scanz, я не зря сказал «для вычислительных задач».
      • Алексей Никитин
        29 ноября 2016, 07:43
        Счастливый Конец, 1080  в нейросетках  в разы рвет все  остальные  карты. Надо брать, чего тут думать. Ценник 45 тыр.
        market.yandex.ru/catalog/55314/list?srnum=15128&hid=91031&text=geforce%20gtx%201080&glfilter=2142604855%3A1834797964&deliveryincluded=0&onstock=0&how=aprice



        Если нужно считать именно даблы то лучше будет  титан  без  х. 
        В вики все расписано 
        en.wikipedia.org/wiki/GeForce_10_series

      • Drozdov.S
        29 ноября 2016, 08:30
        Счастливый Конец, " ученый из меня не вышел "
        попробуй в администрацию президента пойти… там как раз наоборот люди в " ученые " ушли… )))
  • Гденьги ☭
    28 ноября 2016, 22:38
    Скажем, зионы это обычные процы, дополненные набором серверных инструкций и опциями энергопотребления. На домашнем у меня стоит зион на обычной матери.

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

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

    Погоняйте бесплатно https://aws.amazon.com/ru/free/?sc_ichannel=ha&sc_icampaign=free-tier&sc_icontent=2234
      • Гденьги ☭
        28 ноября 2016, 22:57
        Счастливый Конец, так шина вам может вовсе не понадобиться. По-крайней мере, при майнинге шина была полностью не востребована, вам же не текстуры гонять.

        Тупо сравнивая, прирост в 4 раза
        gpu.userbenchmark.com/Compare/Nvidia-GTX-1080-vs-Nvidia-GTX-580/3603vs3150
      • Scorpio
        28 ноября 2016, 22:59
  • Андрей Осипов
    28 ноября 2016, 22:51
    Давайте запущу на своей GTX780.
    Раньше тоже баловался распараллеливанием оптимизации на Матлабе — действительно работает, но грааль так и не откопал)
      • TT
        28 ноября 2016, 23:05
        Счастливый Конец, 
        но мне 1080 хочется.

        Вот с этого и надо было начинать :) Желания нужно удовлетворять.
          • TT
            28 ноября 2016, 23:27
            Счастливый Конец,
            Вообще в игры не играю (проблемы со зрением)

            Прошу прощения.
  • Бобровский Дмитрий
    28 ноября 2016, 22:55
    Ну если банально по ядрам сравнивать, то 2560 ядер CUDA в 1080 GTX против 512 в 580ой. Плюс обновлённая архитектура, CUDA 8.0 и прочие ништяки архитектуры, повышающие скорость в расчёте на ядро и уменьшающие время простоя. Так что эффект будет. И будет, имхо, в разы, т.к. матричные вычисления на CUDA архитектуру отлично ложатся.
  • TT
    28 ноября 2016, 23:03
    Брутфорс грааля…
    • Гденьги ☭
      28 ноября 2016, 23:05
      TT, его сатоши до нас сбрутфорсил уже.
  • Ludomanus Vulgaris
    28 ноября 2016, 23:09
    Могу проверить на 1080.
  • Vitty
    28 ноября 2016, 23:11
    тут вопрос не в видеокартах, а прежде всего в алгоритмах. у вас есть алгоритмы, которые бы 1) давали реально хорошие результаты, причем на будущем, а не на прошлом 2) жутко тормозили 3) допускали бы эффективное переписывание на GPGPU.

    если да (честно да) на все три вопроса — то GTX 1080 стоит копейки по сравнению с тем, что дает первый пункт ;)

    у меня только одна тема ушла на GPGPU, основная масса всего крутится на обычном кластере.
  • Yaroslav
    28 ноября 2016, 23:15
    прога на винде? у меня есть квадры K5000, но только на маке
  • FrBr
    28 ноября 2016, 23:17
    Пользуясь случаем — продам 2 HD7990 на воде =) 
    • Vitty
      28 ноября 2016, 23:19
      FrBr, почем? ;)
      • FrBr
        29 ноября 2016, 10:21
        Vitty, 45 за комплект 
  • Бобровский Дмитрий
    28 ноября 2016, 23:27
    Кстати, если много матричных операций, SVD, Холецкого, калмановская фильтрация и т.п., то возникает вопрос в том, что лучше использовать OpenCL + Radeon для двойной точности, чем 1080 и одинарку.
  • Roman Ivanov
    29 ноября 2016, 00:09
    Хм. Неужели алготрейдеры уже конкурируют на скорости вычисления матриц??
    • Андрей К
      29 ноября 2016, 00:14
      ivanovr, получается да =)) или решили «повыпендриваться» друг перед другом =)) программисты любят это дело
  • Aleksey Smirnoff
    29 ноября 2016, 00:50

    В данной работе рассмотрена аппаратная реализация расчета деполимеризации белковой микротрубочки методом броуновской динамики на кристалле программируемой логической интегральной схемы (FPGA) Xilinx Virtex-7 с использованием высокоуровневого транслятора с языка Си Vivado HLS.

    habrahabr.ru/post/314296/

    • Гденьги ☭
      29 ноября 2016, 13:07
      Aleksey Smirnoff, ух шайтан, как круто.

      Полистал статью, понял, что для меня это уже магия, а не наука.
  • Йоганн
    29 ноября 2016, 03:11
    Ребята, в очередной раз убеждаюсь, что самые продвинутые люди во всех отношениях — среди трейдеров.
    Впервые нарвался на пост, где некомпетентен во всем, хотя обладаю нехилым кругозором и навыками)))

    Деполимеризация белковых микротрубок… мда
    Да еще так хитро, через ресурсы видео-карты на CUDA.

    А любой виндовский процесс можно распоточить и послать в видюху на обсчет?
    Это сложно?
    • Vitty
      29 ноября 2016, 10:29
      Йоганн, нет конечно. и да, это сложно. некоторые алгоритмы вообще никак, некоторые с большими трудностями, некоторые легко. ну нейронные сетки например хорошо ложатся.
    • Гденьги ☭
      29 ноября 2016, 13:48
      Йоганн, в статье трубки не на CUDA предлагают считать, а на программируемой логике. 

      Как я понял, железо адаптируется под нужды, а не наоборот.
      Естественно, от этого выигрыш в эффективности.

      И комментарии там весьма позновательны.
      То есть производительность одной GTX 1080 примерно равна производительности одной FPGA. Кластер 512 ASICов производительней на 3 порядка. То есть один ASIC примерно равен по производительности одному GPU, но ASIC масштабируются «в лоб» намного лучше чем GPU. То есть можно взять 512 ASIC и получить производительность в 512 раз выше (в рамках одной симуляции), больше 512, вроде не получится уже. Производительность GPU масштабируется «в лоб» максимум раза в 2-4 ещё на данный момент
  • П М
    29 ноября 2016, 09:01
    а матричные операции на CPU своей программой исполняли?
    или брали что-то по-настоящему быстрое типа BLAS?
    я в своё время BLAS приспособил для обсчёта нейросетей и успокоился, мне хватило. правда потом я и нейросети практически забросил. тем более что они у меня были простенькие уж слишком.

    нагуглил вот чувачок сравнивает перемножение матриц (dgemm)
    devtalk.nvidia.com/default/topic/484564/cpu-gpu-dgemm/
    CPU vs CPU + GPU 
    прирост получается в два раза. я бы сказал всего в два. т.е. не прям чтобы ах для пакетных операций, хотя для онлайна существенно.
    я просто свой сервер за 30 тыс ₽ в 14 году собрал i7-4770K, без видеокарты. а тут предлагают за 45 видеокарту купить, интересно для каких случаев оно того стоит.
    • Бобровский Дмитрий
      29 ноября 2016, 10:49
      ПBМ, ну, сравнение на 460 с 336 ядрами, бородатом SDK и медленной видеопамяти. Плюс надо заметить, что GeForce ну не очень заточена на двойную точность в CUDA. Фигли, они за это на Тесле капустку рубят. Так что корректно было бы сравнить, н-р, какой-нибудь самый шустрый из Intel'ов (н-р, какой-нибудь 10-тиядерный десктопный broadwell) и 1080 GTX. Использовать, соответственно, заточенные под Intel'овскую архитектуру и nVidia архитектуру BLAS'ы,  благо, такие есть. Думаю, даже с учётом SSEx и прочих векторных плюшек на Интеллах сравнение будет разниться в десятки раз (для одинарной точности). А на теслах — так и для двойной.
      А хотите за адекватные деньги быстрый GPGPU с двойной точностью — велкам в мир радеонов, как говорится, и OpenCL.

      • П М
        29 ноября 2016, 14:52
        Счастливый Конец, ну 100 раз это конечно круто.
        а попробуйте ради интереса через ATLAS матрицы погонять, сколько будет?
        тут вот http://mikiobraun.github.io/jblas/ товарищ показывает разницу в 10-15 раз с обычной программой. это конечно не 100..:(

  • AlexeyTikhonov
    29 ноября 2016, 09:15
    попробуйте в облаке, в азуре (правда там Теслы) сначала и ту и другую карту, увидите динамику, экстраполируете, и прикинете что и как.
  • DIVER PROFIT
    29 ноября 2016, 09:16
    CUDA не поддерживает параллельные расчёты, поэтому видеокарты профи не используют. 
    Не парьтесь зря потратите время.
    • Андрей К
      29 ноября 2016, 09:30
      OilтрейдиOil, интересно стало. А зачет тогда столько ядер туда придумали?
    • П М
      29 ноября 2016, 09:33
      OilтрейдиOil, странно, а NVIDIA говорит что CUDA - это архитектура параллельных вычислений от NVIDIA. кому из вас верить?
      • Андрей К
        29 ноября 2016, 09:36
        ПBМ, в интернете у одной из академий есть семинар одного известного кванта года так 2012 — 2013. Он там рассказывает про параллельные вычисления. Из плюсов — ядер много, из минусов — частота по сравнению с cpu никакая.
        • П М
          29 ноября 2016, 09:53
          Андрей К, я подробно не лазал, но наверняка и кэш у проца побольше. 
          но всё-таки увеличение скорости в два раза при использовании GPU это круто. я просто хотел показать, что даже на CPU если взять хорошую матричную библиотеку, желательно оптимизированную под именно этот CPU (а у меня даже не было такой) — то будет уже очень круто. 
          • Бобровский Дмитрий
            29 ноября 2016, 10:50
            ПBМ, https://software.intel.com/en-us/intel-mkl  не подходит? Да, если задача связана с перемножением матриц малых размерностей, то тут CUDA — выстрел по воробьям из пушки. Крайне неэффективно будет, чем, например, расчёт на том же Intel'е с использованием всех его особенностей. 
            Да, там интел свою многоядерную плюшку запустил подобного толка. Интересно, кто-нибудь сравнивал производительность их решений с nVidia и Ati в отношении больших, средних и малых матриц, например?
            • П М
              29 ноября 2016, 14:43
              Бобровский Дмитрий, у меня интел что-то не пошел. т.е. вообще не почуствовал от него никакого профита.
              я пользовался atlas/lapack через обёртку для java http://mikiobraun.github.io/jblas/
              получилось очень быстро. притом что там оптимизация только для 32bit по-моему. если собрать нормально ATLAS для i7 то наверное летать будет ещё быстрее.

              кстати на новом уровне знаний, я теперь думаю что можно попробовать это сделать, довольно быстро с помощью docker&windows. а то возиться раньше было не охота.
              • Бобровский Дмитрий
                29 ноября 2016, 17:55
                ПBМ, https://software.intel.com/en-us/intel-mkl/details  Ну, тут показано преимущество оптимизированной под архитектуру библиотеки. Там порядки расхождения поражают, если честно. 
                • П М
                  29 ноября 2016, 20:30
                  Бобровский Дмитрий, мб я с потоками что-то не подшаманил. делал на mkl прмерчик и мне не понравилось просто, бросил
                  gcdart.blogspot.ru/2013/06/fast-matrix-multiply-and-ml.html
                  разница вроде не драматичная как интел показывает (тесты старые, не важно)
        • Бобровский Дмитрий
          29 ноября 2016, 10:53

          Андрей К, так CUDA под другое заточено. Основная идея в SIMD. И в куче мух, которые запинывают слона.  

        • Гденьги ☭
          29 ноября 2016, 14:05
          Андрей К, универсальный проц и специализированный шейдер — их некорректно сравнивать.
      • Бобровский Дмитрий
        30 ноября 2016, 10:26
        Счастливый Конец, слух, а на чём писал конкретно, если не секрет? У меня просто вариант R+CUDA напрямую враппить, но хз что по скорости, второй вариант — RCpp+dll'ка толковая под GPGPU.
          • Бобровский Дмитрий
            30 ноября 2016, 12:19
            Счастливый Конец, неплохо так. Я, правда, всё больше и больше смотрю в сторону OpenCL, но видимо пока что части своего кода начну переносить на CUDA. Кстати, есть на примете хорошая GPGPU библиотека для MLE? Ну, или где толковая реализация расписана оных под GPGPU?
  • Григорий
    29 ноября 2016, 09:45
    Знакомый майнер: «Пусть покупает 1070 и херней не страдает»
      • Григорий
        29 ноября 2016, 18:41
        Счастливый Конец, из дворца сообщают:

        1070 в 1,5 дешевле 1080 и примерно на 1/8 слабее. А кое в чем сильнее в разы


        Палит воняет и горит )))

        Брать гигу, Асус, Мси.

        Если для него 30 и 50 тысяч — одно и то же, пусть берет 1080.

          • Григорий
            29 ноября 2016, 18:56
            Счастливый Конец, «из дворца  сообщают» -это фраза из армянского мультфильма про рассказ небылиц ))) Знакомый -майнер и у него карты работают на сверхрежимах, воняет из-за повышенных нагрузок, горят тоже из-за этого.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн