Почему у Google самый мощный искусственный интеллект на рынке

Нейронные сети и машинное обучение уже присутствуют во многих сервисах Google. Они отфильтровывают спам в Gmail, оптимизируют рекламу Adsense и анализируют ваш голос, когда вы разговариваете с Google Assistant. Даже такие компании, как Spotify и Netflix, используют облачные вычисления Корпорации Добра для адаптации своего контента.

Поисковый гигант имеет огромные ресурсы для обычных вычислений, но для этого требуется эффективное использование высококлассного оборудования. Google вложила колоссальные средства в разработку специальных серверных стоек, которые обладают огромной производительностью для машинного обучения. Эта разработка называется Cloud TPU. И эти облачные серверы на данный момент полностью активны.

Облачные серверы или процессоры — поиск лучшего результата

В начале этого года был, на Google I/O 2017, представлен TPU второго поколения, который предлагает невероятную производительность предназначенную для обработки машинного обучения, расчетов нейронных сетей, для развития искусственного интеллекта и вывода более точной контекстной информации.

Хоть эти вычисления могут выполняться и на процессоре (CPU), а иногда даже более эффективно на графическом процессоре (GPU), но эти решения будут ограничены по производительности и энергоэффективности для определенных типов операций. Кроме того, многие случаи использования нейронных сетей требуют почти мгновенной обработки и низкую задержку для пользователя.

Поиск альтернативы CPU и GPU

В дата-центрах затраты на энергию при выполнении функций нейронных сетей на CPU или GPU может привести к огромным затратам. Не только с точки зрения закупки оборудования, но и с точки зрения счетов за электроэнергию в течение длительных периодов времени. Google знала, что, для улучшения машинного обучения им понадобится техника, которая могла бы предложить не только высокую производительность, но и значительно лучшую энергоэффективность, чем могли бы предложить CPU и GPU.

Чтобы решить эту проблему, Google приступила к разработке своего TPU, чтобы обеспечить десятикратное повышение рентабельности по сравнению с готовым GPU. Окончательным вектором развития является сопроцессор, который можно подключить к общей шине PCIe, что позволяет ему работать вместе с обычным  CPU, кроме того он выполняет заданные функции и обрабатывает трафик, а также помогает ускорить время установки серверов. В результате проект был запущен в дата-центрах через 15 месяцев после анонса.

Как устроен TPU от Google

Ранее в этом году Google опубликовала сравнение производительности и эффективности TPU между процессорами Haswell и графическими процессорами Nvidia Tesla K80.

В основе TPU Google лежит матричная мультипликационная единица. Устройство содержит 65538 8-битных множителей (MAC) — это аппаратные блоки, разработанные специально для вычисления продукта двух чисел и добавления его к аккумулятору.

Когда это делается с числами с плавающей запятой, это называется плавным многократным добавлением (FMA). Вы можете вспомнить, что это инструкция, которая ARM прилагает для оптимизации с помощью своих последних процессоров Cortex-A75 и A55, а также графического процессора Mali-G72.

В чем сила TPU от Google

В отличие от CPU или GPU, которыt обращается к нескольким регистрам на операцию при отправке данных в их арифметические логические блоки (ALU), MAC реализует систолический процесс, считывая регистр один раз и повторно используя это значение во время длительного вычисления. Это возможно в TPU из-за его упрощенной конструкции, которая видит, что ALU выполняют умножение и добавление в фиксированные шаблоны в соседних ALU без необходимости доступа к памяти. Это ограничивает конструкцию с точки зрения возможных функций, но значительно увеличивает её производительность и энергоэффективность при этих задачах с многослойным соединением.

С точки зрения чисел, TPU Google может обрабатывать 65 536 умножений. Учитывая, что TPU работает на частоте 700 МГц, он может вычислить 65 536 × 700 000 000 = 46 × 1012 операции умножения и добавления или 92 триллион операций в секунду в матричном блоке.

Google утверждает, что его TPU второго поколения может выдать до 180 терафлопс с плавающей точкой. Здесь более эффективная пропускная способность, чем в типичном скалярном RISC процессоре, который обычно совершает только одну операцию в течение цикла или более.

16-разрядные продукты Matrix Multiply Unit собираются в 4-х битных 32-разрядных аккумуляторах под матричным блоком. Существует также унифицированный буфер из 24 Мб SRAM, которые работают как регистры.

Инструкции по управлению процессором отправляются с CPU на TPU через шину PCIe. Это сложные инструкции типа CISC для выполнения задач, которые совершают многочисленные вычисления с добавлением нескольких расчетов. Эти инструкции передаются по 4-этапному каналу. Всего TPU имеет двенадцать алгоритмов работы, пять из которых наиболее важных, с помощью них можно просто читать и записывать результаты в память, а также начинать матричную размножение / свертку данных.

На чем основан TPU Google

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

Нет кэшей, отраслевых предикторов, многопроцессорных межсоединений или других микро-архитектурных функций, которые можно найти в общем процессоре. Это снова помогает значительно сэкономить на площади кремния и потреблении энергии.

Что касается производительности, компания заявляет, что её TPU обеспечивает 83-кратное соотношение производительности и мощности по сравнению с CPU и в 29 раз лучше, чем при работе на GPU.

TPU от Google предлагает значительные преимущества для производительности во всех операциях, он будет лучше в 20 или более раз по сравнению с графическим процессором и до 71 раз быстрее, чем процессор. Конечно, эти результаты будут различаться в зависимости от типа CPU и GPU.

2-е поколение имеет лучшую энергоэффективность
Сравнение между TPU и GPU/CPU

Сотрудничество с Intel

Усилия Google в области аппаратных решений дали ей большой толчок в сфере развития облачных вычислений, но не все приложения связанные с ИИ хорошо подходят для передачи данных.

Некоторые беспилотные автомобили требуют мгновенные вычисления и поэтому не могут полагаться на передачу данных из-за небольшой задержки с помощью интернета, даже если вычислительная мощность в облаке очень большая. Вместо этого алгоритмы должны выполняться прямо в машине, и то же самое относится к ряду приложений для смартфонов. К примеру, обработка изображений в RAW формат.

С Pixel 2 Google представили свою первую попытку предоставить возможности нейронных сетей, для мобильных устройств с низким энергопотреблением, представив специальный чип Pixel Visual Core. Интересно, что Google объединился с Intel для создания этого процессора, что говорит о том, что корпорация Google, как всегда, сотрудничает с другими компаниями для продвижения своих собственных технологий.

Мы точно не знаем чем занималась Intel при разработке Pixel Visual Core. Они могли разработать как и архитектуру для Visual Core, так и взять на себя ответственность за производство чипов.

Intel открывает все больше компаний, направленные в сферу разработок ИИ — Nervana Systems в 2016 году, Movidius (которая сделала чипы для дронов DJI) в сентябре прошлого года, а Mobileye — в марте 2017 года.

Мы также знаем, что Intel имеет свой собственный нейронный сетевой процессор под кодовым названием Lake Crest, который находится под крылом Nervana Systems. Мы много чего не знаем о процессоре, но уже имеем информацию, что он предназначен для серверов, использует формат с низкой точностью чисел, называемый Flexpoint, и может похвастаться высокой скоростью доступа к памяти в размере 8 терабит в секунду. Он будет конкурировать с гугловским TPU, а не с мобильными продуктами.

С первого взгляда аппаратные средства Pixel 2 сильно отличаются от облачной структуры Google, что неудивительно, учитывая разницу в производительности систем. Хотя мы не так много знаем об архитектуре Visual Core, как и об облачных TPU. Очевидно, что чип имеет гораздо меньше возможностей, чем серверный TPU, ведь процессор в первую очередь предназначен для улучшения изображений, а не для огромного количества вычислений нейронных сетей.

Независимо от того, придерживается ли Google этого дизайна и продолжает ли он работать с Intel для будущих возможностей вычисления границ или возвращается к использованию аппаратного обеспечения, разработанного другими компаниями, еще предстоит выяснить.

В итоге

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

Серверное TPU компании обеспечивает все необходимые условия для машинного обучения. Оно также предлагает значительно более высокую производительность для этих конкретных задач, чем обычные CPU и GPU. Такая же ситуация наблюдается и в мобильных технологиях. Выделенные чипы намного лучше справляются с нейронами сетями.

Смотря на это я могу с уверенностью сказать, что Google надолго станет лидером в этом направлении. Ни у Apple, ни у других корпораций нет шансов догнать Google в направлении искусственного интеллекта и нейронных сетей в ближайшие годы.

0 комментов Вперед к обсуждению! 🙈 →