К основному содержимому
#Engineering

[1/2] История появления Google TPU и их эволюции (Рубрика Engineering)

#Engineering #AI #ML #Software #Architecture #Infrastructure #Data

Буквально вчера я рассказывал про доклад "CodeFest Russia: Куда катится железо для нейронок?", а сегодня я решил рассказать про то, как у Google появились свои процессоры для перемножения матриц. Собственно все начиналось еще в начале 2000х годов, когда Google активно внедряла ML модели к себе в продукты (поиск, переводчик, фото). Они делали это настолько успешно, что с появлением сложных нейронных сетей (а мы помним феерию с CNN сетями и ImageNet в 2012) захотели внедрить и их к себе в продукты, но вычислительная мощность как обучения, так и инференса расла экспоненциально. В 2013 году Google осознали, что если ничего не менять, то придется удваивать количество датацентров на существующем оборудовании (существующих тогда CPU и GPU). В итоге, ребята подумали и придумали проект создания TPU с такими целями

  • Создать Application-Specific Integrated Circuit (ASIC), который обеспечит 10-кратное преимущество в соотношении стоимость/производительность при выполнении инференса по сравнению с GPU
  • Построить решение быстро (ASAP или в сжатые сроки) -Достичь высокой производительности на масштабе с новыми рабочими нагрузками "из коробки", оставаясь при этом экономически эффективным

Досталось рулить проектом Норману Джупи (Norman "Norm" Jouppi), выдающийся компьютерный архитектор и Google Fellow. Норман до этого успел отличиться в проектировании MIPS процессоров. А непосредственно до Google он он работал в HP Labs, где руководил лабораторией передовых архитектур. Интересно, что по словам Джонатана Росса, одного из первых инженеров TPU (впоследствии основателя компании Groq), три отдельные группы в Google разрабатывали ИИ-ускорители, но именно дизайн TPU был в итоге выбран для реализации.

Если говорить про результаты, то они получились хорошими, особенно, если учесть то, что уже доступна седьмая версия TPU. А вот как они выглядили в динамике (я ориентировался на статью "TPU transformation: A look back at 10 years of our AI-specialized chips" от Google Cloud)

1. TPU v1 (2015) - Инференс Он разработан с рекордной скоростью - всего за 15 месяцев с момента начала проекта до развёртывания в дата-центрах Google в начале 2015 года. Такая скорость была достигнута благодаря использованию "устаревшего" 28-нанометрового техпроцесса и относительно низкой тактовой частоты 700 МГц, что позволило относительно просто уложиться в сроки. Энергопотребление было 40 Вт, а производительность 92 TOPS для 8-битных целых чисел. Этот процессор был предназначен только для инференса. Чип показал производительность в 15-30 раз выше, чем современные ему CPU и GPU, с 30-80-кратным преимуществом по энергоэффективности. 2. TPU v2 (2017) - Инференс + Обучение Уже в конце 2014 года, когда TPU v1 находился в производстве, Google осознала, что возможность обучения становится ограничивающим фактором для создания моделей. TPU v2, представленный в 2017 году, стал революционным шагом — это была уже не просто микросхема, а полноценная суперкомпьютерная система. Ключевые нововведения TPU v2:

  • Поддержка как обучения, так и инференса
  • TPU Pod - сеть из 256 чипов TPU v2 с высокопропускной межсоединительной сетью
  • Производительность: 180 TFLOPS
  • Память: 64 ГБ HBM 3. TPU v3 (2018) - Жидкостное охлаждение TPU v3 ввёл жидкостное охлаждение для эффективного управления теплом, что позволило работать на более высоких уровнях производительности. Производительность выросла до 420 TFLOPS, была улучшена межсоединительная сеть и пропускная способность памяти.

Продолжение истории в следующем посте.

#AI #ML #Software #Engineering #Architecture #Infrastructure #Data