Як працює використання ASIC для прискорення ШІ?


9

На сторінці Вікіпедії ми можемо прочитати, що Google створив спеціальний чіп ASIC для машинного навчання та розроблений під TensorFlow, який допомагає прискорити AI.

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

Отже, як саме працює прискорення AI за допомогою чіпів ASIC, якщо його алгоритм неможливо змінити? Яка його частина точно прискорюється?


1
Жодна основна методика AI, про яку я знаю, не потребує модифікації алгоритму , хоча більшість залежать від здатності змінювати дані (сили зв’язку, чисельність населення) тощо
NietzscheanAI

Тож єдина динамічна частина, як стан мережі, зберігається на якійсь флеш-пам’яті чи диску?
kenorb

Відповідно до en.wikipedia.org/wiki/Application-specific_integrated_circuit , сучасні ASIC можуть мати оперативну пам'ять ...
NietzscheanAI

Відповіді:


4

Операції тензора

Основна робота в більшості програм ML - це просто набір (дуже великих) тензорних операцій, наприклад, множення матриці. Ви можете зробити , що легко в СІС, а всі інші алгоритми можуть просто працювати на вершині цього.


1
Важливим моментом є те, що TPU використовує 8-бітне множення, яке може бути реалізовано набагато ефективніше, ніж більш широке множення, пропоноване процесором. Така низька точність є достатньою і дозволяє упакувати багато тисяч таких множників на один чіп.
maaartinus

3

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

Кількість переходів воріт зменшується (можливо, плаваючі операції та точність також), як і кількість операцій переміщення даних, економлячи при цьому енергію та час роботи. Google пропонує, що їхній ТПУ досягає економії коштів у 10 разів, щоб виконати таку ж роботу.

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


1

ASIC - це розшифроване значення для додатків, що належать до конкретних програм. В основному ви пишете програми для проектування чіпа в HDL . Візьму приклади того, як працюють сучасні комп’ютери, щоб пояснити мою думку:

  • Процесорні процесори - це в основному мікропроцесор з багатьма помічниками, які виконують конкретні завдання. У мікропроцесорі є лише один блок арифметичної обробки (складений термін) під назвою " Акумулятор", в якому потрібно зберігати значення, оскільки обчислення виконуються лише і лише ті значення, що зберігаються в акумуляторі. Таким чином, кожну інструкцію, кожну операцію, кожну операцію з R / W потрібно робити через акумулятор (саме тому старіші комп'ютери використовувались для заморожування, коли ви писали з файлу на якийсь пристрій, хоча нині процес удосконалений і може не потребувати акумулятора входити між ними конкретно DMA). Тепер у алгоритмах ML вам потрібно виконати матричне множення, яке можна легко паралелізувати, але у нас є єдиний блок обробки, і таким чином вийшов графічний процесор.
  • GPU - GPU має 100 процесорних одиниць, але їм не вистачає багатоцільових можливостей ЦП. Тож вони хороші для паралельних підрахунків. Оскільки в матричному множенні немає перекриття пам'яті (одна і та ж частина пам'яті, що маніпулюється двома процесами), GPU буде працювати дуже добре. Хоча GPU не є багатофункціональним, він працюватиме так само швидко, як процесор подає дані в свою пам'ять.
  • ASIC - ASIC може бути будь-яким графічним процесором, процесором або процесором вашого дизайну, з будь-яким обсягом пам'яті, який ви хочете надати йому. Скажімо, ви хочете розробити власний спеціалізований процесор ML, спроектуйте процесор на ASIC. Ви хочете 256-бітний номер FP? Створіть 256 бітний процесор. Ви хочете, щоб ваш підсумок був швидким? Реалізувати паралельний суматор для більшої кількості бітів, ніж звичайні процесори? Ти хочешnкількість ядер? Нема проблем. Ви хочете визначити потік даних від різних процесорних одиниць до різних місць? Ти можеш це зробити. Також при ретельному плануванні ви можете отримати компроміс між зоною ASIC проти потужності та швидкості. Єдина проблема полягає в тому, що для всього цього вам потрібно створити власні стандарти. Як правило, при розробці процесорів дотримуються чітко визначених стандартів, наприклад, кількість штифтів та їх функціональність, стандарт IEEE 754 для представлення з плаваючою комою тощо, які з'явилися після безлічі спроб та помилок. Тож якщо ви зможете подолати все це, ви можете легко створити свій власний ASIC.

Я не знаю, що Google виконує зі своїми TPU, але, мабуть, вони розробили якийсь стандарт Integer і FP для своїх 8-бітових ядер, залежно від вимог. Вони, ймовірно, реалізують це на ASIC з огляду на потужність, площу та швидкість.


0

Низька точність дозволяє обчислювати паралелізм у шарах Convo та FC. Фіксована архітектура процесора та GPU, але ASIC / FPGA може бути розроблена на основі архітектури нейронної мережі

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.