Как работает CPU для Google: свободный искусственный интеллект

22.02.2018

Искусственный интеллект думает не так, как человек, и вычисляет не так, как программа. Поэтому компания Google разработала тензорный процессор — элемент аппаратного обеспечения, адаптированный под ИИ.

Искусственный интеллект уже давно прочно вошел в нашу жизнь. Чаще всего мы даже не задумываемся над этим вопросом, когда привычно пользуемся голосовым помощником в смартфоне или автоматическим распознаванием изображений в программе. Даже поиск Google не обходится без машинного обучения, области искусственного интеллекта.

Уже около двух лет работает технология под названием RankBrain, которая служит для умной сортировки результатов поиска. Около 15% ежедневных запросов являются новыми для Google, то есть до этого они не формулировались ни одним пользователем.

«Наш искусственный интеллект обходится без команд со стороны человека»

Профессор Дэвид Сильвер, Главный программист искусственного интеллекта
Google AlphaGo Zero

Алгоритмы RankBrain ищут имеющиеся формы в неизвестных поисковых запросах и увязывают их с семантически схожими понятиями. В итоге поисковая система должна самостоятельно обучаться и иметь возможность давать соответствующие ответы на вопросы, которые ранее не задавались.

Google использует в своих центрах обработки данных специально разработанные для этого тензорные процессоры — TPU.

Тензорные процессоры (TPU)

Успехи искусственного интеллекта Google выглядят впечатляюще. Одна из причин состоит в том, что компания Google разработала специальные аппаратные средства, а это ускоряет нейронные сети намного эффективнее, чем стандартные центральные и графические процессоры. Поразительно, но тензорные процессоры отчасти используют обычные компоненты ПК. Они находятся на одной сменной плате SATA и связываются через PCI Express с другими тензорными процессорами.

Структура тензорного процессора

Быстрое сложение и умножение — сильная сторона тензорного процессора. В ответственном за это модуле с матрицей в качестве центрального компонента производятся вычисления нейронных сетей. Она занимает около четверти площади процессора. Остальное место используется для быстрой подачи вводных данных. Они поступают через PCI Express и оперативную память DDR3. Результаты вычислений возвращаются на сервер через PCI Express и интерфейс хоста.

Сверхчеловеческий интеллект

Свое название процессоры получили от библиотеки программного обеспечения TensorFlow. Основное предназначение TPU состоит в ускорении алгоритмов искусственного интеллекта, которые делают ставку на библиотеки свободного программного обеспечения.

Изначально TPU обрели популярность в качестве аппаратной платформы для AlphaGo —искусственного интеллекта, который победил лучших в мире игроков в азиатскую игру го. В отличие от шахмат, разработка программного обеспечения для го на профессиональном уровне на протяжении многих лет считалась невозможной.

Последующая разработка AlphaGo Zero смогла самостоятельно обучиться игре на основе заданных ей правил. Через три дня она достигла профессионального уровня, через три недели — догнала предшествующую версию AlphaGo, обучение которой стоило громадных усилий и потребовало проведения миллионов профессиональных партий. Выяснилось, что искусственный интеллект ранее ограничивал изучение ходов со стороны человека. Еще через шесть недель AlphaGo Zero уже невозможно было обыграть.

Ускоритель для нейронных сетей

По сравнению с обычными процессорами тензорные специализируются на использовании искусственных нейронных сетей. Они состоят из множества связанных в сеть математических функций, которые имитируют человеческий мозг с его нервными клетками и их связями. Подобно нашему мозгу, нейронная сеть требует соответствующего ввода. Происходит обучение, к примеру, распознаванию речи, изображений — или правилам игры «Го».

Искусственная нейронная сеть включает несколько уровней нейронов. Каждый нейрон использует взвешенную сумму выходных значений связанных нейронов в предыдущем уровне. Правильная сравнительная оценка — ключ к успеху в Machine Learning, но ее сначала надо сделать, что на практике часто означает множественные операции с плавающей точкой.

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

Тензорные процессоры в вычислительном центре Google

Google с 2016 года использует TPU в своих вычислительных центрах. На плате обычно располагают несколько процессоров одним кластером. В основном они используются блоками по четыре штуки.

Тензорный процессор Google состоит в основном из вычислительного блока, матрицы 256×256 единиц. Он работает с восьмибитными целыми числами, достигает вычислительной мощности, составляющей 92 триллиона операций в секунду, и хранит результаты в памяти.

На диаграмме показано, что матрица занимает лишь около четверти площади процессора. Остальные компоненты отвечают за постоянное обеспечение ядер новыми данными. Команды тензорные процессоры сами себе не подают — они поступают с подключенного сервера через PCI Express. Этим же путем передаются в ответ и ко­нечные результаты.

Сравнительные оценки, необходимые для вычислений нейронной сети, поставляет модуль памяти First-In/First-Out. Так как там мало что меняется для конкретного приложения, достаточно подключения через оперативную память DDR3. Промежуточные результаты помещаются в буферный накопитель объемом 24 Мбайт и снова поступают в вычислительный блок.

Энергопотребление в сравнении

Сравнение производительности процессоров на потребленный ватт электроэнергии демонстрирует большую эффективность тензорных процессоров.

Вычислительная мощность/ватт

Гонки с центральным и графическим процессорами

Тензорные процессоры вычисляют со скоростью 225 000 прогнозов для нейронной сети в секунду. CPU и GPU не выдерживают конкуренции.

В 45 раз быстрее обычного процессора

Хотя набор команд CISC (англ. Complex Instruction Set Computer — «компьютер с полным набором команд») тензорного процессора и может отработать сложные команды, их существует всего около десятка. И для большинства необходимых операций требуется только пять команд, в том числе команды чтения, выполнения умножения матрицы или вычисления функции активации.

За счет оптимизации вычислений искусственного интеллекта тензорные процессоры оказываются значительно быстрее обычных процессоров (в 45 раз) или графических процессоров (в 17 раз). В то же время они работают с большей энергоэффективностью.

И Google при этом находится лишь в начале пути: с помощью простых мер производительность тензорных процессоров можно увеличивать и дальше. Одна только установка оперативной памяти GDDR5 может утроить нынешнюю вычислительную мощность.

Читайте также:

Фото: Google LLC