Запуск на Эльбрусе платформы для нейросетей PuzzleLib

    ИИ на отечественном железе


    Рассказываем о том, как мы портировали свой фреймворк для нейронных сетей и систему распознавания лиц на российские процессоры Эльбрус.

    image

    Это была интересная задача, весной 2019 года мы рассказывали об этом в офисе Яндекса на большом митапе про Эльбрус, теперь делимся с Хабром.

    Кратко – что такое Эльбрус


    Это российский процессор со своей собственной архитектурой, разрабатываемый в МЦСТ. Хорошо о нём рассказывает на своём канале Максим Горшенин: www.youtube.com/watch?v=H8eBgJ58EPY

    Кратко – что такое PuzzleLib


    Это наша платформа для нейронных сетей, которую мы разрабатываем и используем с 2015 года. Аналог Google TensorFlow и Facebook PyTorch. Интересно, что PuzzleLib поддерживает не только процессоры NVIDIA и Intel, но и видеокарты AMD.

    Хотя у нас небольшая библиотека (у TensorFlow порядка 2 млн строк, у нас – 100 тысяч), мы лучше по скорости – немного, но лучше =)

    Сейчас мы пока не в open source, библиотека используется для наших проектов, в том числе в проектах нашей сестринской компании «Лаборатория Наносемантика» по созданию голосовых и текстовых виртуальных ассистентов. На PuzzleLib производятся все стадии обучения языковых и акустических моделей и разработка и адаптация ассистентов, как, например, было сделано в проектах для АО «Киевстар» (Договор от 06.10.2015 г.), ООО «UNITEL» (Договор от 07.11.17 г.), CООО «Мобильные ТелеСистемы» (Договор от 21.06.2018 г.), ОАО «Акционерный Сберегательный банк «Беларусбанк» (Договор от 16.07.2018 г.), а также для крупных проектов в энергетической отрасли – АО «АтомЭнергоСбыт» (Договор от 15.04.2019 г.) и АО «ЭнергосбыТ Плюс» (Договор от 16.09.2019 г.).

    Библиотека полноценная: поддерживает как стадию обучения (training), так и стадию вывода (inference) нейронных сетей. Можно строить рекуррентные, свёрточные нейросети, также есть интерфейс для создания произвольных графов вычислений.

    В PuzzleLib есть


    • Модули для сборки нейросетей (Activation (Sigmoid, Tanh, ReLU, ELU, LeakyReLU, SoftMaxPlus), AvgPool (1D, 2D, 3D), BatchNorm (1D, 2D, 3D, ND), Conv (1D, 2D, 3D, ND), CrossMapLRN, Deconv (1D, 2D, 3D, ND), Dropout (1D, 2D) и др.)
    • Оптимизаторы (AdaDelta, AdaGrad, Adam, Hooks, LBFGS, MomentumSGD, NesterovSGD, RMSProp и др.)
    • Готовые к использованию нейросети (Resnet, Inception, YOLO, U-Net и др.)

    Это привычные, знакомые всем, кто занимается нейросетями, блоки для нейросетевых конструкторов (так как любые фреймворки – это конструкторы, состоящие из типовых вычислительных блоков и алгоритмов).

    У нас возникла идея запустить нашу библиотеку на архитектуре Эльбрус.


    Почему мы захотели поддержать Эльбрус?


    1. Это единственный российский процессор, хотелось понять, как с ним обстоят дела, насколько легко с ним работать.
    2. Мы подумали, что государственным организациям может быть интересно, чтобы российское ПО, которое мы разрабатываем, работало на российском железе.
    3. И конечно, нам было просто интересно, т. к. Эльбрус это VLIW-процессор, то есть, процессор с длинными инструкциями, и таких полноценных, общего назначения, процессоров в мире нет.

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

    Что понравилось: на Эльбрусе работает Linux, в этом Linux есть python, причём работает он не в режиме эмуляции – это полноценный, нативный python, собранный под Эльбрус. Также есть пачка стандартных библиотек python, например, numpy, которую все разработчики очень любят.

    Были какие-то задачи, под которые нам приходилось дополнительно собирать библиотеки: например, в PuzzleLib мы используем формат hdf для хранения весов нейросетей, и, соответственно, нам пришлось собрать библиотеки libhdf и h5py с помощью компилятора lcc. Но никаких проблем сборки у нас не было.

    Библиотека компьютерного зрения OpenCV также уже была собрана, но к ней не было биндинга к python – его мы собирали отдельно.

    Известная библиотека dlib тоже довольно легко собралась. Здесь были лишь небольшие трудности: некоторые файлы этого open source проекта были без bom-маркера для определения utf-8, что расстраивало лексёр lcc. Собственно, просто был некорректный формат файлов, который пришлось в исходниках поправить.

    Мы решили сначала запустить распознавание лиц. Это понятный всем use case, много где эта технология используется. В PuzzleLib, как и в других библиотеках, довольно большая бэкендовая часть, то есть база кода, специфичного для разных процессорных архитектур.

    Наши бэкенды:

    • CUDA (NVIDIA)
    • Open CL + MI Open (AMD)
    • mlkDNN (Intel)
    • CPU (numpy)

    На Эльбрусе мы запустили numpy-бэкенд, что было очень просто, т. к. от платформы требуется минимум всего:

    Платформа -> с90-компилятор -> python -> numpy

    У нас библиотека без каких-либо усложняющих факторов (например, без каких-то особенных систем сборки) – кроме того, что нам необходимо было собрать определённые биндинги. Мы запустили тесты, всё работает – и свёрточные сетки, и рекуррентные. То распознавание лиц, которое мы запускали, довольно простое, базируется на Inception-ResNet.

    Первые результаты работы

    На Intel Core i7 7700 время обработки одного изображения было 0.1 секунды, а здесь – 15. Надо было оптимизировать.

    Конечно, рассчитывать, что numpy будет с ходу хорошо работать – было бы неправильно.

    Как мы оптимизировали вычисления


    Мы замерили скорость inference через профайлер python и выяснили, что почти всё время тратилось на перемножение матриц в numpy. Для пробы написали самое простое, ручное перемножение матрицы, и оно уже оказалось быстрее, хотя было непонятно, почему.

    Казалось бы, numpy.dot должен был быть написан чуть менее наивно, чем такое простое перемножение. Тем не менее, мы сбилдили, проверили – получилось уже быстрее (12 секунд на кадр вместо 15).

    Далее мы узнали о библиотеке линейной алгебры EML, которая разрабатывается в МЦСТ, заменили вызовы np.dot на cblas_sgemm. Стало в 10 раз быстрее (1.5 секунды) – мы были очень довольны.

    Далее следовало несколько пошаговых оптимизаций. Т. к. мы запускаем только распознавание лиц, а не в целом произвольные данные, мы решили заточить наши операции только под 4d-тензоры и сделать Fusion – после чего время обработки снизилось в 2 раза – до 0.75 секунд.

    Пояснение: Fusion – это когда несколько операций объединяются в одну, к примеру, свёртка, нормализация и активация. Вместо того, чтобы делать проход по трём циклам, делается один проход.

    Такие библиотеки есть у NVIDIA (TensorRT). В неё загружается вычислительный граф, а библиотека выдаёт оптимизированный, ускоренный граф, в частности за счёт того, что она умеет схлопывать операции в одну. Подобная есть и у Intel (nGraph и OpenVINO).

    Потом мы увидели, что поскольку было много свёрток 1х1 в Inception-ResNet, у нас происходило лишнее копирование данных. Мы решили специализироваться под то, что работаем на батчах из 1 фотографии (то есть, не пачками обрабатывать 100 фотографий, а обеспечить потоковый режим) – есть такие use cases, когда нужно работать не с архивами, а с потоком (например, для видеонаблюдения или СКУД). Мы создали специализированный проход без im2col (убрали большие копии) – стало 0.45 секунды.

    Потом мы снова посмотрели профайлер, у нас было всё так же – хоть все стадии и сжались по времени, у нас всё равно 80% времени уходило на вычисление свёрточных инференс-блоков.
    Мы поняли, что нужно параллелить gemm (general matrix multiply). Тот gemm, который в EML, оказался однопоточным. Соответственно, нам пришлось написать многопоточный gemm самостоятельно. Идея такая: большая матрица дробится на подблоки, и потом уже идёт перемножение этих маленьких матриц. Мы написали gemm с OpenMP, но он не заработал, вылетали ошибки. Мы взяли ручной пул потоков, параллелизация дала 0.33 секунды на кадр.

    Далее нам дали удалённый доступ к более мощному серверу с Эльбрус 8С, на котором скорость увеличилась до 0.2 секунды на кадр.

    На следующем видео показана работа демо-стенда с распознаванием лиц на компьютере Эльбрус 401-PC с процессором Эльбрус 4С:


    Выводы и дальнейшие планы


    • У нас работает не просто распознавание лиц, а в принципе нейросетевой фреймворк, поэтому мы можем собирать любые детекторы, классификаторы и запускать их на Эльбрусе.
    • У нас есть собранный демо-стенд с Web-UI для демонстрации распознавания лиц на PuzzleLib.
    • Распознавание лиц на Эльбрусе работает уже достаточно быстро для практических задач, дальше можно ускорять, если возникнет потребность.
    • С Эльбрусом можно работать. Нам доводилось работать с экзотическими процессорами – например, с тензорными российскими процессорами, которые ещё разрабатываются, с видеокартами AMD и их софтом. Там всё совсем не так хорошо и просто. То есть, если мы берём библиотеку MI Open от AMD – это очень плохо написанная библиотека, в которой не все комбинации страйдов, паддингов и размеров фильтров приводят к успешным вычислениям. Качество инструментария от Эльбруса хорошее – если у вас есть проект на Python, C или C++, запустить его на Эльбрусе совсем несложно.
    • Ещё стоит отметить, что те работы по пошаговой оптимизации, про которые мы рассказывали – это не специфичные операции по работе в Эльбрусе. Это стандартные операции по работе с многоядерными процессорами. На наш взгляд, это хороший признак, что с процессором можно работать как с обычным процессором от Intel/NVIDIA.

    Планы:


    • Поскольку у Эльбруса есть особенность в том, что это VLIW-процессор, можно произвести какие-то специфичные для Эльбруса оптимизации.
    • Сделать квантизацию (работа с int8 вместо float32), что экономит память и увеличивает скорость. Соответственно, при этом, конечно, может быть просадка по качеству вычислений – но этого может и не быть. Мы на практике замечали оба случая.

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

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

    В январе 2020 планируем выложить PuzzleLib в open source, об этом мы здесь ещё напишем =)
    Спасибо за внимание!
    Нейросети Ашманова
    Занимаемся машинным обучением и нейросетями.
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

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

      +17
      image
        +1
        Вы на датасете от Медведева обучали что-ли?!)
        –1
        Почему мы захотели поддержать Эльбрус?

        Это единственный российский процессор, хотелось понять, как с ним обстоят дела, насколько легко с ним работать.
        Мы подумали, что государственным организациям может быть интересно, чтобы российское ПО, которое мы разрабатываем, работало на российском железе.
        И конечно, нам было просто интересно, т. к. Эльбрус это VLIW-процессор, то есть, процессор с длинными инструкциями, и таких полноценных, общего положения, процессоров в мире нет.


        — Мы очень хотим уютных госзаказиков за деньжищи налогоплательщиков
          +12
          Ну так-то это не стыдно же хотеть деньжищи? Или стыдно?
            –9
            Слишком уж много там вьется коррупционных схем вокруг наших с вами деньжищ, перераспределяемых чиновниками с низкой социальной ответственностью, так что в эту серую зону обычно ходят руководствуясь не только здоровым коммерческим интересом, но и готовностью закрывать глаза на нарушения закона, а то и готовностью участвовать в этих схемах откатами, как, например, поступает Касперский
              +4
              Деньжищи будут разворованы независимо от того, что на них приобретают — Intel или Эльбрус. С Эльбруса хоть что-то в виде з/п профильным специалистам внутри страны заплатят.
                –2
                Деньжищи будут разворованы независимо от того


                Вопрос не в том, будут ли, вопрос в том, что лично вы (я, они) готовы (не готовы) принимать в этом участие
                  0
                  А лично они (технические специалисты фирмы, к которым вы адресовали свою филиппику) и не будут — также, как лично не принимают участие в этом технические специалисты Intel, AMD, Oracle etc.
                    +2
                    Мне кажется, что пост составлен с большим учетом нетехнического интереса в уме.
                      +1
                      В любом случае разница между «освоили Эльбрус — сможем выполнять госзаказы» и «освоили Эльбрус — сможем красть» реализуется никак не на уровне технических специалистов.
                        0
                        Спорить с очевидным сложно, тем более, что я обратного и не утверждал никогда
                          0
                          Вы же написали
                          Вопрос не в том, будут ли, вопрос в том, что лично вы (я, они) готовы (не готовы) принимать в этом участие
                          Т.е., предполагалось заведомое участие техспецов в коррупции.
                            +3
                            Моя реплика касается не «заведомого участия техспецов в коррупции», а вопросу морального выбора, встающего как перед предпринимателями, так и перед специалистами. Мне правда нужно почитать вам вслух или вы прекратите приписывать одним словам значение других?
                              –1
                              Если речь не идет о заведомом участии в коррупции, то в чем, собственно, моральный выбор, встающий перед специалистами? Между чем выбирать предлагается?
                                –3
                                Начнем с того, что о технических специалистах заговорили вы. Пост генерального директора != пост технического специалиста, даже если по совместительству директор таковым является

                                Я отказываюсь с вами спорить, так как сама суть спора вокруг каких-то абстрактных специалистов вами навязана и никак фактически не связана ни с публикацией, ни с моими комментариями

                                То, что это увлечение Эльбрусом попахивает коррупционными деньгами, подсказала мне моя интуиция, однако достаточно было погуглить и выясняется, например, связь семьи постера с семьей Касперского, всплывают уже полученые государственные заказы.

                                www.cnews.ru/news/top/2019-08-23_startap_syna_igorya_ashmanova

                                Сказки Булонского леса о чистоте помыслов я приглашаю вас далее рассказывать не мне, я отвечать вам не буду, sapienti sat
                                  +2
                                  Начнем с того, что о технических специалистах заговорили вы.
                                  Но вы к этому претензий не предъявляли, напротив — постулировали моральный выбор, «встающий как перед предпринимателями, так и перед специалистами». Если в части предпринимателей всё ясно, то про специалистов хотелось бы разъяснений.
                                  То, что это увлечение Эльбрусом попахивает коррупционными деньгами, подсказала мне моя интуиция
                                  Ну раз интуиция, то тут не поспоришь
                                  связь семьи постера с семьей Касперского...
                                  Я человек старомодный (презумпция невиновности, бремя доказательств, нелюбовь к революционному правосознанию и учёту происхождения — вот это вот всё), так что предполагал, что обвиняя кого-то в намерении совершить преступление, вы будете оперировать несколько более весомыми аргументами. Ошибся — бывает.
                                    +1
                                    «однако достаточно было погуглить и выясняется, например, связь семьи постера с семьей Касперского»


                                    Оказывается, мало, совершенно недостаточно гуглить. Ведь нужно ещё включать голову.
                                    Иначе получается совершенно чудовищная лажа.
                                    Вроде вот этой.

                                    Какая ещё «связь постера с семьёй Касперского»? Что вообще за «семья Касперского»? Как может быть с ней «связан» Станислав Ашманов?
                                    Какая связь несуществующих пока «госзаказов» на нейронный движок под Эльбрус, которые вообразил себе комментатор, и грантом РВК на платформу виртуальных собеседников для бытовой техники?

                                    Но это ж не главное, «в главном-то он прав (с)».
                                    Ведь всё плохо и будет только хуже!

                                    Вместо того, чтобы, наконец, порадоваться за нашу страну, что есть созданная с нуля национальная нейронная платформа, и она заработала с национальным же процессором — надо пробурчать, что всё раскрадут!
                                    До этого можно было бурчать, что ничего своего нет; теперь можно бурчать, что всё равно всё украдут.
                                    Ну посоветуй компилятор под WLIW, пообсуждай методы оптимизации, выясни причины, почему на Интеле настолько быстрее. Но нет — нет смысла! Вообще нет смысла делать что-то отечественное!

                                    Аноним же хорошо знает сказки Булонского леса!
                                    А что там в этих сказках говорят о том, когда в государственные ведомства коррумпированные чиновники покупают за государственные деньги технику от Интела, ИБМ, ставят ПО от Микрософта, Оракла, Гугла, ИБМ — там, конечно же, нет откатов и коррупции?

                                    Вообще, самые большие откатчики в ИТ-отрасли, в том числе в России — именно эти компании, названные выше.
                                    Здесь тоже не мешало бы включить голову.

                                    Ну да ладно, в общем, всё понятно.
                                      0
                                      Забавно слышать совет «включать голову» от человека, публично поддерживавшего стариковщину. Как там англичанка, всё гадит, Игорь Станиславович?
                                        +1
                                        Забавно слышать совет «включать голову» от человека, публично поддерживавшего стариковщину. Как там англичанка, всё гадит, Игорь Станиславович?

                                        Аргумент — прямо в точку, по сути, невероятной силы, несомненно достойный такого технического ресурса, как Хабр.
                                      • НЛО прилетело и опубликовало эту надпись здесь
              +5
              Каково это делать продукт, который будет потом использован против тебя же, или деньги не пахнут?
                +4
                А представьте, что вдруг какой нибудь nginx работает на сервере в Роскомнадзоре!
                Или кто-то делает Аста Линукс, а ее потом генералу ФСБ в компьютере установят.
                Ужас же!
                  +2
                  Вы перекручиваете.
                  Nginx изначально разработан для людей. Поэтому, как контраргумент, не проходит.
                  Эльбрус же разработан только гос сектора и военных.
                  А с учетом того, при каком режиме живём, и их желанием внедрить массово распознование лиц, чтобы подавлять протесты и обеспечить себе и друзьям-коррупционерам вечное пребывание у власти, минусить должны как раз вас, а не saag
                    –1
                    Да ладно! Внедрять массовое распознование лиц хочет прежде всего бизнес: например, вот "Две столичные сети кофеен ввели систему распознавания лиц покупателей",
                    Для чего им это нужно не берусь судить, но правительства государств, конечно задумаются о своем использовании.
                    Вообще все, что придумывают инженеры для блага человечества, потом правительства и военные переиспользуют для своих нужд. Так что, не изобретать теперь ничего?
                      –1
                      ага, только россия и бизнес.
                      как бикини и северный полюс.

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

                      В здоровых странах эти инструменты используются действительно для борьбы с преступностью. В стране курильщика — для подавления оппозиции и удержания власти.
                0
                Любопытно узнать, для сборки C/C++ кода подбирали опции компилятора для максимальной производительности или компилировали просто в -O3 режиме? Вдобавок, можно ускориться с использованием профиля. В хелпе всё это (подобно gcc) должно быть.
                  +2
                  А какой будет результат, если столько же усилий потратить на ускорение системы на Intel Core i7 7700?
                    0
                    Вот тоже подумал про это…
                      +7
                      Есть подозрение, что на i7-7700 уже ускоренный описанными в статье методами код. Они же для Intel используют специальный интеловский бэкенд, а Intel обращает большое внимание на производительность своих продуктов.
                        +1

                        Для Intel это уже сделано, только усилий (в условных человеко-часах) потрачено на пару порядков больше.

                        +3
                        А картинки подобраны, чтобы максимально лизнуть?
                          0
                          Максимально глубоко.
                          0
                          Ещё интересно бы узнать стоимость Intel Core i7 7700 и стоимость «более мощного сервера на Эльбрус 8С», к которому вам дали доступ, и который в 2 раза медленнее i7.
                            +8
                            В темах про эльбрус это все уже обсуждалось, и не раз. Само собой дороже стоит. И никак иначе, чтоб предлагать дешевле надо делать больше, а больше делать можно когда есть покупатели в таких количествах.
                            habr.com/ru/news/t/465219/#comment_20559073
                            habr.com/ru/news/t/465219/#comment_20558333
                              +3
                              А так же указывалось, что тот же комплекс с Intel Core i7 7700, но с сертификатами нужными тоже может стоить как чугунный мост.
                            +1
                            Всем интересующимся по теме: roem.ru/23-08-2019/278887/sova-ashmanovy
                              +1
                              А почему Путин только под номером 4?
                                +1
                                Отсылка к «китайской» 4.
                                  –1
                                  А вдруг под номером 1 всё же Навальный… %)
                                    0

                                    Конспиролухи расскажут что под 1-3 (0-3?) Истинные Правители (Ну или разработчики, admin aka H. Finch, mr. J. Reese, Sameen Shaw, Root).

                                      0
                                      "… And maybe this isn't the end at all"
                                    +1
                                    Работал с TI DSP ядрами на VLIW архитектуре (C674x) — могу порекомендровать:
                                    1. Использовать intrinsics — они должны поддерживаться компилятором. У TI, к примеру, хорошая документация по их использованию.
                                    2. Генерировать ассемблерный дамп компиляции, где обычно указываются распараллеленные компилятором операции, а так же число тактов на их выполнение.
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                        0
                                        И всё же очень странно, что numpy настолько тормозил. Хорошо бы разобраться, в чём там дело.
                                          +3
                                          очень вероятно, что при сборке не включилась оптимизация из-за неизвестной архитектуры
                                          +5
                                          Хотя у нас небольшая библиотека (у TensorFlow порядка 2 млн строк, у нас – 100 тысяч), мы лучше по скорости – немного, но лучше =)

                                          Очень сильное заявление, а пруфы есть? и что даже с tensorflow поверх tensorRT сравнивались?

                                          • НЛО прилетело и опубликовало эту надпись здесь
                                              0
                                              Шойгугл. )
                                                –2
                                                Недостаточно, чтобы президента России узнавали все люди в мире, его также должны узнавать все компьютеры ;)
                                                  –1

                                                  Насчет откатов — я просто оставлю это здесь https://roem.ru/23-08-2019/278887/sova-ashmanovy/
                                                  Насчет ускорения — я так понимаю основной прирост получился за счет использования специализированной для Эльбруса библиотеки. Внимание — вопрос — отчего и почему если это как утверждается в статье


                                                  это полноценный, нативный python, собранный под Эльбрус

                                                  Эта библиотека не была подключена сразу при "полноценной, нативной сборке под Эльбрус" ?

                                                    +2
                                                    Почитайте, пожалуйста, что такое BLAS.

                                                    Такие библиотеки существуют под каждый процессор. EML – пример такой библиотеки. Ещё специализированный пример – mklDNN для Intel – предоставляет ускоренные программные ядра для операций, нужных для нейросетей. Python сам по себе, конечно, ни на одном процессоре не даёт максимальной скорости работы этих операций. Если подключиться к таким библиотекам – рост скорости очень большой.
                                                      0

                                                      Здравствуйте! Подскажите, пожалуйста, как именно подключить cblas_sgemm вместо numpy в модулях на python? В документации МЦСТ ничего о cblas_sgemm нет, да и в numpy тоже. Очень много людей будет в восторге, если покажете как. Спасибо!

                                                    +1
                                                    Все-таки непонятен глубинный смысл идеи портирования ИИ и нейросетей, в частности, на архитектуру Эльбруса. Есть более современные архитектуры и типы устройств, которые далеко продвинулись в области машинного обучения и инференса. Последний идеально работает на стиках NCS2, есть Google Coral, UP Board AI на Myriad X, FPGA и многое другое. Возможно, правильным было бы направление не адаптации современных решений под устаревшую архитектуру, а разработка архитектуры под современные решения.

                                                    Если уж сильно хочется, можно повторить тензорный процессор на ПЛИС'ах. Будет свой ускоритель ИИ на отечественной аппаратной базе. Опять же есть Tesnorflow, который замечательно компилируется в OpenCL и отлично исполняется на ПЛИС'ах (например, Mustang F100 и подобные).
                                                      –2
                                                      На FPGA ускоритель? Да там любая архитектура общего назначения будет быстрее хотя бы из-за частоты: сравните частоту 250МГц FPGA (я о более скоростных не слышал) и 1,5ГГц «Эльбруса» (ну или с 4ГГц Intel).
                                                      А так да, разработка тензорного процессора по сравнением с портированием на процессор общего назначения будет эффективнее… но гораздо дороже.
                                                        +1
                                                        Оно же не в один поток работает, как процессорное ядро…
                                                          –1
                                                          На исследования в области систем параллельного выполнения задач уже потрачено много ресурсов. Но реально распараллеливать получается только узкий круг задач. Зачастую накладные расходы на распараллеливание перекрывают преимущества многоядерности. Та же самая оркестровка может требовать большее количество вычислительных мощностей, чем результат от ее применения.

                                                          FPGA с нужным количеством входов и заранее определенным алгоритмом всегда будет выгоднее, чем многопроцессорные системы. Плюс исполнение на FPGA детерминировано по времени, что позволяет работать в реальном времени, что крайне актуально для видеоаналитики.
                                                          +2
                                                          Ускоритель ИИ (обучение или инференс). Тот же самый Mustang F100, о котором писали выше. Их нельзя сравнивать по частоте. Тактовая частота и скорость исполнения инструкций — это совершенно разные вещи. Смысл в том, что на ПЛИС'е может быть набор собственных инструкций, которые выполняют конкретно твой код (который на процессоре общего назначения может потребовать несколько миллиардов тактов). На обычном CPU это будет набор типовых инструкций, а на ПЛИС'е — конкретно необходимая в данном месте операция.

                                                          Так, все операции с уровнями нейронных сетей (тензорных вычислений) строятся на BLAS. Для CUDA — cuBLAS, Intel — MKL и т.д. FPGA позволяет реализовать большую часть библиотечных операций на аппаратном уровне, вместо того, чтобы загружать процессор общего назначения математическими преобразованиями.

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

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