Для того, чтобы работать с ИИ, не всегда требуется покупать мощное оборудование. Однако и времена, когда вычисления производились на процессоре обычного ПК, прошли, и Intel в свое время представила Neural Compute Stick (NCS) - доступное устройство начального уровня в форме карты USB.
Первое поколение NCS опирается на Vision Processing Unit (VPU) производства Movidius. В данном случае это был чип Myriad 2, обеспечивающий производительность до 100 GFLOPS при потреблении всего 1 Вт энергии. Теперь компания выпустила Neural Compute Stick 2 (NCS 2) на базе Movidius Myriad X.
Этот чип производится по 16-нм техпроцессу на мощностях TSMC. Intel не выпускает чип сама, потому что к моменту покупки гигантом компании Movidius процесс разработки уже шел. Второе поколение насчитывает уже не 12, а 16 вычислительных блоков SHAVE (Streaming Hybrid Architecture Vector Engine). Каждый блок располагает кэшем на 2,5 Мбайт вместо 2,0 Мбайт, а пропускная способность увеличилась до 450 Гбайт/с вместо прошлых 400. Блоки рассчитаны на выполнение 128-битных инструкций VLIW (Very Long Instruction Words).
Этими улучшениями Intel планирует добиться увеличения производительности в восемь раз. Но здесь нужно учитывать и то, под какие именно вычисления разработано устройство. Myriad X работает с вычислениями FP16 и INT8. Для последних Intel называет производительность 1 TOPS, но в некоторых случаях она может достигать и 4 TOPS. Производительность FP16 неизвестна, но должна быть около 800 GFLOPS. Сравните: производительность Tesla V100 достигает 120 TFLOPS, что во много раз больше, но и потребляет этот ускоритель 300 Вт. Новая архитектура Turing с ядрами Tensor обеспечивает 225 TOPS для INT8 и 450 TOPS для INT4.
Область применения Intel NCS2, скорее всего, ограничится начальным сегментом, например, для введения в методологию разработчиков. Практического применения в центрах обработки данных новинка, вероятно, не найдет. Окружение OpenVINO должно способствовать более легкому погружению разработчиков в основы соответствующего программного и аппаратного обеспечения.
Устройство Intel NCS2 должно вскоре появиться в продаже и стоить всего 99 долларов.
Примеры использования Intel NCS2
Многим, наверное, будет интересно, как можно использовать подобное оборудование, и кто является его основным потребителем. Поэтому мы пообщались с Кристианом Хашеком (Christian Haschek), который уже использует NCS первого поколения.
Кристиан начал использовать NCS из-за интереса в машинном обучении, связанном с его различными проектами. Будучи геймером, у него уже было практически всё необходимое оборудование, но проекты должны были быть независимыми от ПК, да и энергопотребление целого компьютера было проблемой. Машинное или глубокое обучение состоит по сути из двух этапов. Существует тренировка сетей, для которой необходимо мощное оборудование, а собственно отправка запросов в сеть называется инференсингом. Так, ускорители Tesla предназначены, в основном, для тренировки. Но есть и менее глобальные стадии разработки, которые оптимизированы для инференсинга.
Как раз здесь в игру вступает Intel NCS - устройство не предназначено для тренировки, но справляется с инференсингом. Именно в этом случе производительность 800 GFLOPS при мощности 1 Вт играет особенно важную роль.
Конкретный пример - выявление детской порнографии в базах данных изображений. Хашек разработал собственную базу данных с открытым исходным ходом для хранения изображений онлайн. Однако он вскоре понял, что некоторые пользователи могут использовать её нелегально для хранения изображений с детским порно.
Для определения этих изображений Хашек взял за основу уже тренированную сеть Yahoo, которую можно использовать через программное окружение NCS. Аппаратную основу составили три Raspberry Pi и два NCS первого поколения. Общее энергопотребление всей системы оказалось ниже 10 Вт.
Анализ изображений - самый очевидный пример использования NCS. Другим вариантом может быть определение людей на камерах наблюдения. Одной из проблем в данном случае является то, что зачастую такой анализ проходит не локально, а в облаке. Но в данном случае речь идет об отправке изображений на сервер, что может быть критично. Использование локального оборудования позволит не отправлять нежелательную информацию, а также сохранить веб-траффик.
О других проектах можно прочитать в блоге Кристиана.