Как работает ASIC для ускорения ИИ?

9

На странице Википедии мы можем прочитать, что Google создал специальный чип ASIC для машинного обучения и специально для TensorFlow, который помогает ускорить ИИ.

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

Так как же работает ускорение ИИ с использованием микросхем ASIC, если его алгоритм нельзя изменить? Какая часть этого ускоряется?

kenorb
источник
1
Ни один из известных методов искусственного интеллекта, о которых я знаю, не требует модификации алгоритма , хотя большинство из них зависят от способности изменять данные (силы соединений, членов группы населения) и т. Д.
NietzscheanAI
Таким образом, единственная динамическая часть, такая как состояние сети, хранится на некоторой флэш-памяти или диске?
Кенорб
Согласно en.wikipedia.org/wiki/Application-specific_integrated_circuit , современные ASIC могут иметь оперативную память ...
NietzscheanAI

Ответы:

4

Тензорные операции

Основная работа в большинстве приложений ML - это просто набор (очень больших) тензорных операций, например, умножение матриц. Вы можете сделать это легко в ASIC, и все остальные алгоритмы могут просто работать поверх этого.

Петерис
источник
1
Важным моментом является то, что TPU использует 8-битное умножение, которое может быть реализовано гораздо эффективнее, чем более широкое умножение, предлагаемое ЦП. Такая низкая точность достаточна и позволяет упаковать многие тысячи таких множителей в одну микросхему.
Maaartinus
3

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

Количество переходов строба уменьшается (возможно, операции с плавающей запятой и точность), равно как и количество операций перемещения данных, что позволяет экономить как энергию, так и время выполнения. Google предлагает, чтобы их TPU достигли 10-кратной экономии, чтобы выполнить ту же работу.

https://cloudplatform.googleblog.com/2016/05/Google-supercharges-machine-learning-tasks-with-custom-chip.html

похотливый
источник
1

ASIC - расшифровывается как IC для конкретного приложения. В основном вы пишете программы для проектирования чипа в HDL . Я расскажу о том, как работают современные компьютеры, чтобы объяснить мою точку зрения:

  • ЦП - ЦП - это в основном микропроцессор с множеством вспомогательных микросхем, выполняющих определенные задачи. В микропроцессоре есть только один модуль арифметической обработки (составленный термин), называемый накопителем, в котором должно храниться значение, поскольку выполняются только вычисления и только значения хранятся в аккумуляторе. Таким образом, каждая инструкция, каждая операция, каждая операция чтения / записи должна выполняться через аккумулятор (вот почему старые компьютеры зависали при записи из файла на какое-либо устройство, хотя в настоящее время процесс был усовершенствован и может не требовать аккумулятора встать между конкретно DMA). Теперь в алгоритмах ML вам необходимо выполнять умножения матриц, которые можно легко распараллелить, но у нас в нашем распоряжении только один процессор, и поэтому появились графические процессоры.
  • Графические процессоры - графические процессоры имеют 100 процессорных единиц, но им не хватает многофункциональных возможностей процессора. Так что они хороши для распараллеливаемых вычислений. Поскольку в матричном умножении нет перекрытия памяти (та же часть памяти, которой манипулируют 2 процесса), графические процессоры будут работать очень хорошо. Хотя, поскольку графический процессор не является многофункциональным, он будет работать только так быстро, как процессор загружает данные в свою память.
  • ASIC - ASIC может быть любым графическим процессором, процессором или процессором вашей конструкции с любым объемом памяти, который вы хотите выделить. Допустим, вы хотите создать свой собственный специализированный процессор ML, разработать процессор на ASIC. Вы хотите 256-битный номер FP? Создать 256-битный процессор. Вы хотите, чтобы ваше суммирование было быстрым? Реализовать параллельный сумматор до большего количества бит, чем у обычных процессоров? Ты хочешьnколичество ядер? Нет проблем. Вы хотите определить поток данных из разных блоков обработки в разные места? Ты можешь это сделать. Также при тщательном планировании вы можете найти компромисс между областью ASIC и мощностью в зависимости от скорости. Единственная проблема заключается в том, что для всего этого вам нужно создать свои собственные стандарты. Обычно при проектировании процессоров соблюдаются некоторые четко определенные стандарты, такие как количество выводов и их функциональность, стандарт IEEE 754 для представления с плавающей запятой и т. Д., Которые были разработаны после множества проб и ошибок. Поэтому, если вы можете преодолеть все это, вы можете легко создать свою собственную ASIC.

Я не знаю, что Google делает со своими TPU, но, видимо, они разработали своего рода стандарт Integer и FP для своих 8-битных ядер в зависимости от существующих требований. Вероятно, они внедряют его на ASIC с точки зрения мощности, площади и скорости.

DuttaA
источник
0

Низкая точность обеспечивает высокий уровень параллелизма в слоях Convo и FC. Фиксированная архитектура CPU и GPU, но ASIC / FPGA может быть разработана на основе архитектуры нейронной сети

Махи
источник