Новый ML-алгоритм работает до 15 раз быстрее на центральном процессоре, чем на видеоускорителе

    Ученые из Университета Райса продемонстрировали программное обеспечение, которое работает на обычных процессорах и обучает глубокие нейронные сети в 15 раз быстрее, чем платформы на основе графических процессоров.

    Автор разработки, доцент кафедры информатики в инженерной школе Райс Аншумали Шривастава
    Автор разработки, доцент кафедры информатики в инженерной школе Райс Аншумали Шривастава

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

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

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

    Исследователи преобразовали обучение глубоких нейросетей в поисковую задачу, которую можно решить с помощью хеш-таблиц. Их «сублинейный механизм глубокого обучения» (SLIDE) специально разработан для работы на стандартных процессорах. Как утверждают разработчики, он может превзойти обучение на основе графического процессора в 4-15 раз по скорости.

    Так, обучение с использованием SLIDE на 44-ядерном ЦП оказалось более чем в 3,5 раза (1 час против 3,5 часов) быстрее, чем обучение с использованием Tensorflow на Tesla V100 при любом заданном уровне точности. На том же аппаратном обеспечении ЦП SLIDE работает более чем в 10 раз быстрее, чем Tensorflow.

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

    Код разработчиков доступен на GitHub.

    Как отмечается в обсуждении, данный алгоритм предназначается именно для широких нейросетей, но не для сверточных.

    Комментарии 21

      +3

      Из статьи не совсем понятно: SLIDE на CPU быстрее SLIDE на GPU или же SLIDE на CPU быстрее классики на GPU?

        +12

        Почитал статью. SLIDE сравнивался с TF-GPU (3.5x) и TF-CPU (10x).
        А реализация SLIDE на GPU будет неэффективной, т.к. алгоритм практически не векторизуется.

          +5

          Я понял как второе. SLIDE здесь противопоставили Tensorflow.

          +2

          Хотелось бы сравнение для домашнего компа с игровой видюхой.

            0

            Скорее всего, вычисления на игровой видеокарте окажутся быстрее.


            Первый момент: алгоритм SLIDE эффективен только при большом количестве ядер (больше восьми). При 8 ядрах SLIDE = TF-CPU, при 4 ядрах TF-CPU уже получается быстрее SLIDE.


            Второй момент: используется тип данных FP32, а на игровых видеокартах производительность FP32 так же высока, как и на профессиональных. На RTX3090 TFLOPS так вообще в 2 раза больше, на на V100 (35 против 15).


            Ну а дальше просто смотрим статью (Figure 9) и делаем выводы.
            Даже если взять 16-ядерный процессор, то GPU все равно окажется быстрее, если поставить RTX3090 вместо V100.

              0
              На RTX3090 TFLOPS так вообще в 2 раза больше, на на V100 (35 против 15).
              вы чет в 8 раз ошиблись с v100.
                +2

                Вы о tensor cores и потенциальных 120 TFLOPS? Я вас разочарую: тензорные вычисления в V100 работают с FP16, а не с FP32 (точнее, FP16 × FP16 → FP32). У авторов же используется тип FP32, т.е. тензорные ядра оказываются не задействованы. Так что нет, я не ошибся.

              0
              На 1050Ti современные алгоритмы даже не запустятся, а других карт и нету.
              +7
              Наконец то в 2021 году, научились кешировать информацию и вычисления. Ведь все Решения и шаги можно запоминать. Мы не вычисляем каждый раз что 1+1 будет 2 — мозг берёт решение из памяти.

              Нужно вычислять сам процесс вычисления и делать радужные хеш таблицы до 14 — 20 символа.

              Вообще, матричное квадратные операции все уже вычислены.
              Даже есть визуализация этого. получается всего 8 узоров

              xcont.com/pattern.html

              xcont.com
                0
                Знакомые узоры. На хабре есть статья об этих узорах и даже не одна.
                +7
                Мельком взглянул на их бумаги. Я так понимаю, основа их метода — это то, что можно вычислять только сильно-влияющие связи, отбрасывая вычисление остальных. Оптимизационный ход неплохой, но надо понимать, что это жертвование точностью в угоду скорости.
                Но тоже самое можно проделать и на GPU — тоже не вычислять все связи, а только самые значимые. И тоже будет быстрее.

                Вторая их основа — это кэш вместо повторного расчета. Тоже хороший ход, но невероятно сильно вырастет потребление памяти. А попытка вписать это потребление памяти в какие-то ограничения приведет нас к очистке кеша по LRU и сборщику мусора с периодическим запуском. Что в каких-то вариантах может сожрать всю производительность.
                Кроме того, существование такого кэша сильно мешает параллельности — теперь произвести вычисления на сотне разных компов параллельно стало проблемой — надо как-то синхронизировать кеш между ними.
                И это тоже можно проделать на GPU, вроде.

                Вобщем, сравнение CPU vs GPU у них получилось странное. Напоминает «окунем газету в серную кислоту, а тв-парк в дистилированную воду». А в целом — молодцы, что прорабатывают это направление.
                  0
                  Тоже хороший ход, но невероятно сильно вырастет потребление памяти.

                  Да. 12 гигабайт памяти.


                  Кроме того, существование такого кэша сильно мешает параллельности

                  Потому они и запускали на 44-ядерном процессоре.

                    0
                    Уже и 128-ядерные процессоры не за горами с соответсвующим количество кеш-памяти
                      +1
                      Ну с учетом, что в домашнем сегменте 16/32 уже норма и оперативки сотни гигов…
                      PS. А что за 44 ядерный проц, кстати? сервер с двумя 22-ядерными ксеонами или 44 потока?
                        +1

                        All the experiments are conducted on a server equipped with two 22-core/44-thread processors (Intel Xeon E5-2699A v4 2.40GHz) and one NVIDIA TeslaV100 Volta 32GB GPU.

                          +2
                          Спасибо. Ну, с учётом, что 5950X проиграет если только объемом оперативки и количеством каналов, то получается, что даже на домашнем компе алгоритм будет работать не особо хуже, а вот увидеть в домашнем подобную теслу или 3090 сложнее сейчас)
                            0
                            даже на домашнем компе
                            не все ставят проц за $750 в домашний комп… Тесла правда еще вдесятеро дороже, но всё же.
                              0
                              Сейчас можно по дешёвке разжиться серверными Xeon V3, проц на 14 ядер обойдётся около 100 баксов.
                                0
                                За 70-80к как за этот проц сейчас можно взять только самую дешевую 3060. В цену 3070 уже можно собрать системник на оном проце и с затычкой. А 3090 — это вообще под 300к на текущий момент.
                                То есть если б мне сейчас потребовалось для изучения подобной задачи, то вариант купить данный проц для меня был бы возможно наименее затратным (заменить проц и доставить ещё хотя бы 2 модуля оперативки по 16 гигов).
                                Ну я и нигде не утверждал, что они распространены дома широко. Только, что для дома вполне себе доступные решения уже (тредриперы те же уже всё дороже, либо старые поколения интелов, но там частот и ядер так себе)
                    0
                    Как бы в правильном направлении идут, но вот я чего то волноваться начал, видеокарту уже не купить, а теперь вот под процессоры взялись оптимизировать.
                      0
                      Никакой угрозы для обычного CV дип лернинга на GPU это не представляет, потому что у их сети нет глубины и учили они сеть на задаче рекомендации, а не распознавании графики.

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

                      Самое читаемое