Tensor Processing Unit ( TPU ) — это специализированная интегральная схема (ASIC) ускорителя искусственного интеллекта , разработанная Google для машинного обучения нейронных сетей с использованием собственного программного обеспечения Google TensorFlow . [2] Google начала использовать TPU для внутренних целей в 2015 году, а в 2018 году сделала их доступными для стороннего использования как в рамках своей облачной инфраструктуры, так и предложив уменьшенную версию чипа для продажи.
По сравнению с графическим процессором , TPU предназначены для большого объема вычислений с низкой точностью (например, с точностью всего 8 бит ) [3] с большим количеством операций ввода/вывода на джоуль , без аппаратного обеспечения для растеризации/ текстурного отображения . [4] По словам Нормана Джуппи, микросхемы TPU ASIC монтируются в радиаторной сборке, которая может поместиться в слот жесткого диска в стойке центра обработки данных . [5]
Различные типы процессоров подходят для различных типов моделей машинного обучения. TPU хорошо подходят для CNN , в то время как GPU имеют преимущества для некоторых полностью связанных нейронных сетей, а CPU могут иметь преимущества для RNN . [6]
Блок тензорной обработки был анонсирован в мае 2016 года на Google I/O , когда компания заявила, что TPU уже используется в их центрах обработки данных более года. [5] [4] В статье Google 2017 года, описывающей его создание, упоминаются предыдущие систолические матричные умножители аналогичной архитектуры, созданные в 1990-х годах. [7] Чип был специально разработан для фреймворка TensorFlow от Google , символьной математической библиотеки, которая используется для приложений машинного обучения, таких как нейронные сети . [8] Однако по состоянию на 2017 год Google все еще использовала центральные и графические процессоры для других типов машинного обучения . [5] Другие проекты ускорителей ИИ появляются также у других поставщиков и нацелены на рынки встраиваемых систем и робототехники .
TPU от Google являются собственностью компании. Некоторые модели доступны для приобретения, и 12 февраля 2018 года The New York Times сообщила, что Google «разрешит другим компаниям покупать доступ к этим чипам через свой сервис облачных вычислений». [9] Google заявила, что они использовались в серии игр AlphaGo против Ли Седоля в го -игре «человек против машины» , [4] а также в системе AlphaZero , которая создавала программы для игры в шахматы , сёги и го только по правилам игры и в дальнейшем превзошла ведущие программы в этих играх. [10] Google также использовала TPU для обработки текста в Google Street View и смогла найти весь текст в базе данных Street View менее чем за пять дней. В Google Photos отдельный TPU может обрабатывать более 100 миллионов фотографий в день. [5] Он также используется в RankBrain , который Google использует для предоставления результатов поиска. [11]
Google предоставляет третьим лицам доступ к TPU через свою службу Cloud TPU как часть Google Cloud Platform [12] и через свои службы Kaggle и Colaboratory на базе блокнотов . [13] [14]
TPU первого поколения — это 8-битный механизм умножения матриц , управляемый инструкциями CISC хост-процессора через шину PCIe 3.0 . Он производится по 28 -нм техпроцессу с размером кристалла ≤ 331 мм 2 . Тактовая частота составляет 700 МГц , а его тепловая мощность составляет 28–40 Вт . Он имеет 28 МБ встроенной памяти и 4 МБ 32-битных аккумуляторов , принимающих результаты систолического массива 256×256 8-битных умножителей . [7] Внутри пакета TPU находится 8 ГиБ двухканальной памяти DDR3 SDRAM 2133 МГц , обеспечивающей пропускную способность 34 ГБ/с. [17] Инструкции передают данные на хост или с него, выполняют умножение матриц или свертки и применяют функции активации . [7]
Второе поколение TPU было анонсировано в мае 2017 года. [23] Google заявила, что конструкция TPU первого поколения была ограничена пропускной способностью памяти , а использование 16 ГБ памяти с высокой пропускной способностью во втором поколении увеличило пропускную способность до 600 ГБ/с и производительность до 45 тераФЛОПС . [ 17] Затем TPU объединяются в четырехчиповые модули с производительностью 180 терафлопс. [23] Затем 64 из этих модулей собираются в 256-чиповые модули с производительностью 11,5 петафлопс. [23] Примечательно, что в то время как TPU первого поколения были ограничены целыми числами, TPU второго поколения также могут выполнять вычисления с плавающей точкой , представляя формат bfloat16 , изобретенный Google Brain . Это делает TPU второго поколения полезными как для обучения, так и для вывода моделей машинного обучения. Google заявила, что эти TPU второго поколения будут доступны в Google Compute Engine для использования в приложениях TensorFlow. [24]
Третье поколение TPU было анонсировано 8 мая 2018 года. [25] Google объявила, что сами процессоры в два раза мощнее, чем TPU второго поколения, и будут развернуты в модулях с вчетверо большим количеством чипов, чем в предыдущем поколении. [26] [27] Это приводит к 8-кратному увеличению производительности на модуль (до 1024 чипов на модуль) по сравнению с развертыванием TPU второго поколения.
18 мая 2021 года генеральный директор Google Сундар Пичаи рассказал о тензорных процессорах TPU v4 во время своего выступления на виртуальной конференции Google I/O. TPU v4 повысил производительность более чем в 2 раза по сравнению с чипами TPU v3. Пичаи сказал: «Один модуль v4 содержит 4096 чипов v4, и каждый модуль имеет в 10 раз большую пропускную способность межсоединений на чип в масштабе по сравнению с любой другой сетевой технологией». [28] В статье Google от апреля 2023 года утверждается, что TPU v4 на 5–87 % быстрее Nvidia A100 в тестах машинного обучения . [29]
Существует также версия «inference», называемая v4i, [30], которая не требует жидкостного охлаждения . [31]
В 2021 году Google сообщила, что физическая компоновка TPU v5 разрабатывается с помощью нового приложения глубокого обучения с подкреплением . [32] Google утверждает, что TPU v5 почти в два раза быстрее, чем TPU v4, [33] и на основе этого и относительной производительности TPU v4 по сравнению с A100 некоторые предполагают, что TPU v5 будет таким же быстрым или даже быстрее, чем H100 . [34]
Подобно тому, как v4i является облегченной версией v4, пятое поколение имеет «экономически эффективную» [35] версию под названием v5e. [19] В декабре 2023 года Google анонсировала TPU v5p, который, как утверждается, может конкурировать с H100. [36]
В мае 2024 года на конференции Google I/O компания Google анонсировала TPU v6, который будет доступен в конце 2024 года. Google заявила о повышении производительности в 4,7 раза по сравнению с TPU v5e [37] за счет более крупных блоков умножения матриц и повышенной тактовой частоты. Емкость и пропускная способность памяти с высокой пропускной способностью (HBM) также удвоились. Модуль может содержать до 256 блоков Trillium. [38]
В июле 2018 года Google анонсировала Edge TPU. Edge TPU — это специально разработанный компанией Google чип ASIC, предназначенный для запуска моделей машинного обучения (ML) для периферийных вычислений , то есть он намного меньше и потребляет гораздо меньше энергии по сравнению с TPU, размещенными в центрах обработки данных Google (также известными как Cloud TPU [39] ). В январе 2019 года Google сделала Edge TPU доступным для разработчиков с линейкой продуктов под брендом Coral. Edge TPU способен выполнять 4 триллиона операций в секунду при мощности 2 Вт. [40]
В число предлагаемых продуктов входят одноплатный компьютер (SBC), система на модуле (SoM), USB- аксессуар, карта mini PCI-e и карта M.2 . SBC Coral Dev Board и Coral SoM работают под управлением ОС Mendel Linux — производной от Debian . [41] [42] Продукты USB, PCI-e и M.2 функционируют как дополнения к существующим компьютерным системам и поддерживают системы Linux на базе Debian на хостах x86-64 и ARM64 (включая Raspberry Pi ).
Среда выполнения машинного обучения, используемая для выполнения моделей на Edge TPU, основана на TensorFlow Lite . [43] Edge TPU способен ускорять только операции прямого прохода, что означает, что он в первую очередь полезен для выполнения выводов (хотя на Edge TPU можно выполнять легкое обучение переносу [44] ). Edge TPU также поддерживает только 8-битную математику, что означает, что для того, чтобы сеть была совместима с Edge TPU, ее необходимо либо обучить с использованием метода обучения с учетом квантования TensorFlow, либо с конца 2019 года также можно использовать квантование после обучения.
12 ноября 2019 года компания Asus анонсировала пару одноплатных компьютеров (SBC) с Edge TPU. Платы Asus Tinker Edge T и Tinker Edge R разработаны для IoT и Edge AI . SBC официально поддерживают операционные системы Android и Debian . [45] [46] Компания ASUS также продемонстрировала мини-ПК под названием Asus PN60T с Edge TPU. [47]
2 января 2020 года Google анонсировала Coral Accelerator Module и Coral Dev Board Mini, которые будут продемонстрированы на выставке CES 2020 в том же месяце. Coral Accelerator Module — это многочиповый модуль с интерфейсами Edge TPU, PCIe и USB для более простой интеграции. Coral Dev Board Mini — это меньший одноплатный компьютер с Coral Accelerator Module и MediaTek 8167s SoC . [48] [49]
15 октября 2019 года Google анонсировала смартфон Pixel 4 , который содержит Edge TPU под названием Pixel Neural Core . Google описывает его как «настроенный для соответствия требованиям ключевых функций камеры в Pixel 4», использующий поиск нейронной сети, который жертвует некоторой точностью в пользу минимизации задержки и энергопотребления. [50]
Google последовал примеру Pixel Neural Core, интегрировав Edge TPU в специализированную систему на кристалле под названием Google Tensor , которая была выпущена в 2021 году вместе с линейкой смартфонов Pixel 6. [51] Система на кристалле Google Tensor продемонстрировала «чрезвычайно большие преимущества в производительности по сравнению с конкурентами» в тестах, ориентированных на машинное обучение; хотя мгновенное энергопотребление также было относительно высоким, улучшенная производительность означала, что потреблялось меньше энергии из-за более коротких периодов, требующих пиковой производительности. [52]
В 2019 году компания Singular Computing, основанная в 2009 году Джозефом Бейтсом, приглашенным профессором Массачусетского технологического института , [53] подала иск против Google, утверждая о нарушении патентных прав на чипы TPU. [54] К 2020 году Google успешно сократила количество исков, которые должен был рассмотреть суд, до двух: иск 53 из US 8407273, поданный в 2012 году, и иск 7 из US 9218156 , поданный в 2013 году, оба из которых заявляют о динамическом диапазоне от 10 -6 до 10 6 для чисел с плавающей точкой, чего стандартный float16 сделать не может (без обращения к субнормальным числам ), поскольку у него всего пять бит для экспоненты. В иске в суд 2023 года компания Singular Computing специально указала на использование Google bfloat16 , поскольку это превышает динамический диапазон float16 . [55] Singular утверждает, что нестандартные форматы с плавающей точкой были неочевидны в 2009 году, но Google парирует, что формат VFLOAT [56] с настраиваемым числом битов экспоненты существовал как предшествующее искусство в 2002 году. [57] К январю 2024 года последующие иски Singular довели количество оспариваемых патентов до восьми. К концу судебного разбирательства в конце того же месяца Google согласилась на урегулирование с нераскрытыми условиями. [58] [59]