The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

30.10.2018 09:23  Facebook открыл код библиотеки для ускорения приложений машинного обучения

Facebook опубликовал новую библиотеку QNNPACK (Quantized Neural Network PACKage), предоставляющую набор оптимизированных для выполнении на мобильных устройствах операторов, которые можно использовать для ускорения реализаций различных нейронных сетей. В частности, QNNPACK предоставляет операторы для построения свёрточных, развёртывающих и полностью рекуррентных нейронных сетей, манипулирующих квантованными 8-битными тензорами. Библиотека написана на языке Си с ассемблерными вставками, использующими SIMD-инструкции NEON и SSE2 для распараллеливания обработки данных. Код распространяется под лицензией BSD.

Предоставляемые библиотекой QNNPACK примитивы могут использоваться для замены типовых реализаций операторов нейронных сетей в высокоуровневых фреймворках машинного обучения. В настоящее время QNNPACK можно использовать для ускорения работы фреймворка PyTorch и поддерживает экспорт моделей в графовое представление Caffe2. Библиотека уже применяется в мобильных приложениях Facebook для решения задач компьютерного зрения, таких как классификация и распознавание изображений, а также выделение объектов (Mask R-CNN, DensePose) на фотографиях в режиме реального времени.

Замена предлагаемых во фреймворках штатных реализаций операторов нейронных сетей на предоставляемые библиотекой QNNPACK оптимизированные операторы, позволяет ускорить работу приложений на мобильных устройствах приблизительно в два раза, при выполнении тестов на базе нейронной сети MobileNetV2 при решении задач компьютерного зрения. Библиотека поддерживает 32- и 64-разрядные архитектуры ARM (AArch32 и AArch64), а также архитектуру x86 (для оптимизации используются инструкции SSE2).

  1. Главная ссылка к новости (https://code.fb.com/ml-applica...)
  2. OpenNews: Доступен Luminoth, тулкит для решения задач компьютерного зрения
  3. OpenNews: Facebook открыл код платформы Detectron для распознавания объектов на фотографиях
  4. OpenNews: Facebook открыл код библиотеки классификации текста fastText
  5. OpenNews: Amazon открыл код компилятора NNVM для систем машинного обучения
  6. OpenNews: Intel открыл систему машинного обучения для обработки информации на естественном языке
Лицензия: CC-BY
Тип: Программы
Ключевые слова: ai, pytorch, facebook, caffe2, qnnpack
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, h31 (ok), 09:37, 30/10/2018 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    А как же OpenCL? А как же использование AI-ускорителей в хуавеевских процессорах? А как же Hexagon DSP в квалкомовских процах?
     
     
  • 2.2, Аноним (2), 09:46, 30/10/2018 [^] [ответить]    [к модератору]
  • +/
    Не все сразу
     
  • 2.39, Онаним (?), 01:49, 31/10/2018 [^] [ответить]    [к модератору]
  • +2 +/
    Для этого и открыли исходники. Пиши за спасибо фейсбуку.
     
  • 2.47, Аноним (47), 22:49, 31/10/2018 [^] [ответить]     [к модератору]
  • +/
    А пусть все эти ai-ускорители и хексагоны вывесят хотя-бы тот же opencl, чтоли ... весь текст скрыт [показать]
     
  • 1.3, freehck (ok), 10:03, 30/10/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +2 +/
    > квантованными 8-битными тензорами

    Кто-нибудь знает, что это такое?

     
     
  • 2.10, Аноним (10), 11:58, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    Догадываюсь. Компоненты тензора представлены не типом double, а типом int8_t.
     
  • 2.11, Nuzhny (?), 11:59, 30/10/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Тензоры, элементы кототорых занимают 8 бит.
     
     
  • 3.25, freehck (ok), 18:15, 30/10/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    > Тензоры, элементы кототорых занимают 8 бит.

    Спасибо.

     
  • 2.15, Аноним (15), 13:04, 30/10/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    В стародавние времена это называли байтом.
     
     
  • 3.16, Аноним (16), 13:29, 30/10/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    8-ми битные процессоры помню. 16-и битные помню. Сейчас распространены 64-х битные. А 1-байтных, 2-байтных и 8-ми байтных никогда не встречал
     
     
  • 4.18, ОМЖ (?), 13:45, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    8-сьми и 16-надцати.
     
     
  • 5.35, grn (ok), 20:14, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    8-осьми, 16-естнадцати?
     
  • 5.43, Аноним (43), 12:46, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    Мда. Вот и выросло поколение... которое книжки в руки не брало, а мнение имеет.
     
  • 3.21, Nuzhny (?), 17:11, 30/10/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Никогда разрядность не называли в байтах ни сейчас, ни раньше И пофиг для проц... весь текст скрыт [показать]
     
     
  • 4.22, Аноним (10), 17:25, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    >сразу можно оценить диапазон. Например, числа с плавающей запятой

    Сразу можно оценить, что вы не айтишник.

     
     
  • 5.24, Nuzhny (?), 17:44, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    Главное, что аргументов не будет. Если что IEE 754 я читал.
     
     
  • 6.36, Qwerty (??), 23:08, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    А, ну тогда точно айтишник, извините. «Прочитал учебник анатомии, теперь я хирург».
     
     
  • 7.37, Nuzhny (?), 23:50, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    Точно! В твоём случае: поставил Убунту - айтишник, заводил товары на кассе - программист. Усё понятно.
     
  • 4.28, Sw00p akaJerom (?), 18:54, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    >>Никогда разрядность не называли в байтах

    очередной никогдашник, речь шла не о разрядности, а о типе данных

    пс: "никогда не слышал о 8-ми битных типах данных, только байтовые"

     
  • 4.29, Sw00p akaJerom (?), 18:59, 30/10/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    - Саллоцируйте мне 2 бита
    - Говорите точно, сколько вешать в байтах
     
  • 4.33, Аноним84701 (ok), 19:18, 30/10/2018 [^] [ответить]     [к модератору]  
  • +2 +/
    Скорее, потому что 8 бит в байте -- довольно новомодное введение стандартизаци... весь текст скрыт [показать]
     
     
  • 5.42, Акакжев (?), 11:35, 31/10/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    В ISO IEC 9899 201x пока _минимум_ 8 167 6 2 6 1 3 Values stored in unsigned... весь текст скрыт [показать]
     
     
  • 6.44, Аноним (44), 15:01, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    На C свет клином не сошёлся.
     
     
  • 7.45, Акакжев (?), 15:44, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    > На C свет клином не сошёлся.

    Верно, есть множество иных стандартов. Наверняка кто-то даже сможет их процитировать.

     
  • 4.48, Аноним (47), 22:51, 31/10/2018 [^] [ответить]     [к модератору]  
  • +/
    Зато синглы и даблы single, double - достаточно типовое название Хоть оно... весь текст скрыт [показать]
     
  • 2.19, Онвоним (?), 14:45, 30/10/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Предполагаю, что это байт, который может иметь одновременно несколько состояний в один и тот же момент времени. Но это не точно.
     
     
  • 3.23, Аноним (10), 17:28, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    +стопиццот :)

    Точнее, все возможные состояния одновременно. Ещё точнее, не иметь определённого состояния.

     
     
  • 4.30, Sw00p akaJerom (?), 19:00, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    >>Точнее, все возможные состояния одновременно.

    Эт как это так ? О_о

     
  • 4.32, Sw00p akaJerom (?), 19:13, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    единица информации в 1 бит - имеет всего два ВЗАИМОИСКЛЮЧАЮЩИХ состояний (1 или 0), как 1 бит может иметь одновременно два состояния? По определению ведь приводит к противоречию!
     
     
  • 5.56, xm (ok), 21:24, 01/11/2018 [^] [ответить]    [к модератору]  
  • +/
    это же бит Шрёдингера!
     
     
  • 6.59, Sw00p akaJerom (?), 16:16, 02/11/2018 [^] [ответить]    [к модератору]  
  • +/
    > это же бит Шрёдингера!

    он же - кубит, два разных понятия

     
  • 3.26, freehck (ok), 18:16, 30/10/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    > Предполагаю, что это байт, который может иметь одновременно несколько состояний в один
    > и тот же момент времени. Но это не точно.

    Хех, забавно, но они ж не квантовые, а квантованные... )

     
     
  • 4.31, Sw00p akaJerom (?), 19:08, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    так понятия "квантового тензора" - нет, не говорю уже о какой-то абсурдности выражения "квантовый 8-ми битный тензор", тут точно битный и квантовый не вызывают противоречия?
     
  • 2.38, Аноним (38), 00:48, 31/10/2018 [^] [ответить]    [к модератору]  
  • +6 +/
    Тензором они считают вектор. В данном случае это вектор из 8-ми бит. Само название тензор не имеет ничего общего с понятием из математики и физики. Просто они решили выпендрится и используют его для именования векторов.
     
     
  • 3.40, Аноним (40), 08:19, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    Да, выпендрежники те еще. "Квантованный", "тезорный". Опт вашу мать, это просто массив байт. Софистика снова в моде!
     
     
  • 4.57, Аноним (-), 00:29, 02/11/2018 [^] [ответить]     [к модератору]  
  • +/
    От тензоров, векторов и проч - ожидаются несколько иные свойства чем от произвол... весь текст скрыт [показать]
     
  • 1.4, Аноним (4), 10:07, 30/10/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +4 +/
    > Код распространяется под лицензией BSD

    Проклятые копирасты!

     
  • 1.6, Аноним (6), 10:31, 30/10/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +7 +/
    >Библиотека написана на языке Си с ассемблерными вставками

    Как ни крути, но миром управляет язык Си с ассемблерными вставками :)

     
     
  • 2.7, Qwerty (??), 11:05, 30/10/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Быстро, удобно, надёжно, но бесконечно устарело. Оправдано только малой мощностью мобильных камней.
     
     
  • 3.8, Аноним (6), 11:40, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    >Быстро, удобно, надёжно, но бесконечно устарело.

    Устарело? C11 няшка, а будет ещё лучше.

    https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=fcbe1d64056ebe8319655ec6e9a3

     
     
  • 4.14, Аноним (10), 12:38, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    Изложи вкратце для дующих слабо-слабо, что грандиозного будет в новых стандартах? Вложенные функции, как в Dшечке, будут, пространства имён будут?
     
  • 4.17, Онаним (?), 13:36, 30/10/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Что только люди ни придумают чтобы не писать на Lisp...
     
     
  • 5.20, A.Stahl (ok), 16:03, 30/10/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Ага, например более... нормальные языки программирования. Вроде того же Си. Много чего можно придумать если альтернатива -- писать на Лиспе.
     
     
  • 6.27, freehck (ok), 18:18, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    > Си

    Как в слове ML можно сделать две ошибки? :)

     
     
  • 7.34, A.Stahl (ok), 19:38, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    Не знаю, но ты умудрился в слове Си их сделать :)
     
  • 7.50, Аноним (47), 22:57, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    > Как в слове ML можно сделать две ошибки? :)

    Сейчас под ML обычно понимают Machine Learning, если уж мы об этом... ;)

     
     
  • 8.55, freehck (ok), 14:32, 01/11/2018 [^] [ответить]    [к модератору]  
  • +/
    >> Как в слове ML можно сделать две ошибки? :)
    > Сейчас под ML обычно понимают Machine Learning, если уж мы об этом... ;)

    Не думаю, что Милнер выразит протест по этому поводу.

     
  • 5.49, Аноним (47), 22:56, 31/10/2018 [^] [ответить]     [к модератору]  
  • +/
    Да ну его - состоит из однотипных скобок чуть более чем полностью Поэтому визуа... весь текст скрыт [показать]
     
  • 3.9, Акакжев (?), 11:43, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    Очевидно, асм вставки необходимы для использования SSE2. Либо интринсики, что аналогичны по сути.
     
     
  • 4.53, Аноним (-), 23:07, 31/10/2018 [^] [ответить]     [к модератору]  
  • +/
    Да вообще SIMD как такового И вообще - в узких местах компилер все же может про... весь текст скрыт [показать]
     
  • 3.12, Аноним (10), 12:05, 30/10/2018 [^] [ответить]    [к модератору]  
  • +/
    Но вот про "надёжно" спорно. Ошибки работы с памятью - это ненадёжно.
     
     
  • 4.52, Аноним (-), 23:05, 31/10/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Если програмер раздолбай - как максимум изменится характер ошибок При том именн... весь текст скрыт [показать]
     
  • 3.13, Аноним (10), 12:15, 30/10/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    fixed: Оправдано только малой мощностью камней Cortex-M3 и хуже.
     
     
  • 4.51, Аноним (47), 22:59, 31/10/2018 [^] [ответить]     [к модератору]  
  • +/
    Да вообще-то для какой-нибудь реалтаймной классификации объектов - и кора и7 с в... весь текст скрыт [показать]
     
  • 3.41, Аноним (40), 08:24, 31/10/2018 [^] [ответить]    [к модератору]  
  • +/
    > малой мощностью мобильных камней

    Хотел бы те же 100+ Ватт, как у десктопных? Яйца сварятся

     
  • 3.46, Аноним (47), 22:48, 31/10/2018 [^] [ответить]     [к модератору]  
  • +/
    Так остальные работают по принципу пыхтонраст не тормозит и создают больше нов... весь текст скрыт [показать]
     
  • 1.54, northbear (??), 11:36, 01/11/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Это полезно исключительно для ботнетов. Никто иной в здравом уме учить нейронную сеть на мобильных устройствах не будет. В мобильных устройствах обычно используются уже обученные сети, для работы которых тензорные операторы не нужны...
    Ну, теоретически кто-то может построить приложение, которое обучается/дообучается на мобильном клиенте. Но тяжеловесные тензорные операции для этого оверкилл.  
    Обычно дообучают более простыми алгоритмами...
     
     
  • 2.58, Аноним (-), 00:43, 02/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Там вон на гитхабе интересный прототип ботнета лежит - включается в бортовую сет... весь текст скрыт [показать]
     
     
  • 3.60, northbear (??), 11:32, 12/11/2018 [^] [ответить]     [к модератору]  
  • +/
    Это в любом случае предполагает наличие вычислительных ресурсов как минимум срав... весь текст скрыт [показать]
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor