На этом шаге мы рассмотрим возможности оборудования.
Между 1990 и 2010 годами быстродействие стандартных процессоров выросло примерно в 5000 раз. Сейчас на ноутбуке можно запускать небольшие модели глубокого обучения, тогда как 25 лет назад это в принципе было невозможно.
Однако типичные модели глубокого обучения, используемые для распознавания образов или речи, требуют вычислительной мощности на порядок больше, чем мощность ноутбука. В течение 2000-х такие компании, как NVIDIA и AMD, вложили миллионы долларов в разработку быстрых процессоров с массовым параллелизмом (графических процессоров - Graphical Processing Unit, GPU) для поддержки графики все более реалистичных видеоигр - недорогих, специализированных суперкомпьютеров, предназначенных для отображения на экране сложных трехмерных сцен в режиме реального времени. Эти инвестиции принесли пользу научному сообществу, когда в 2007 году компания NVIDIA выпустила CUDA (https://developer.nvidia.com/about-cuda) - программный интерфейс для линейки своих GPU. Теперь несколько GPU могут заменить мощные кластеры на обычных процессорах в различных задачах с возможностью массового распараллеливания вычислений (в том числе начиная с физического моделирования). Глубокие нейронные сети, выполняющие в основном умножение множества маленьких матриц, также допускают высокую степень распараллеливания, поэтому ближе к 2011 году некоторые исследователи начали писать CUDA-реализации нейронных сетей. Одними из первых стали Дэн Кайесан и Алекс Крижевски.
Таким образом игровая индустрия субсидировала создание суперкомпьютеров для следующего поколения приложений искусственного интеллекта. Действительно, иногда крупные достижения начинаются с игр. Современный графический процессор NVIDIA Titan RTX, в конце 2019 года стоивший 2500 долларов США, способен выдать пиковую производительность 16 терафлопс с одинарной точностью (16 триллионов операций в секунду с числами типа float32). Это почти в 500 раз больше производительности самого быстрого по состоянию на 1990 год суперкомпьютера Intel Touchstone Delta. Графическому процессору Titan RTX требуется всего несколько часов для обучения модели ImageNet, выигравшей конкурс ILSVRC в 2012-2013 годах. Между тем большие компании совершенствуют модели глубокого обучения на кластерах, состоящих из сотен GPU.
Более того, индустрия глубокого обучения вышла за рамки GPU и инвестировала средства в развитие еще более специализированных, эффективных процессоров для глубокого обучения. В 2016 году на ежегодной конференции Google I/O компания Google продемонстрировала свой проект тензорного процессора (Tensor Processing Unit, TPU) с новой архитектурой, предназначенного для использования в глубоких нейронных сетях, намного более производительного и энергоэффективного, чем топовые модели GPU.
В 2020 году было представлено третье поколение карты TPU с вычислительной мощностью 420 терафлопс. Это в 10 000 раз больше мощности Intel Touchstone Delta 1990 года.
Данные карты TPU предназначены для сборки крупномасштабных конфигураций, называемых блоками или подами (pods). Один блок (1024 карты TPU) имеет максимальную производительность 100 петафлопс. Для сравнения - это около 10% пиковой вычислительной мощности современного крупнейшего суперкомпьютера IBM Summit в Национальной лаборатории Окриджа, который состоит из 27 000 графических процессоров NVIDIA и имеет пиковую вычислительную мощность около 1,1 эксафлопса.
На следующем шаге мы рассмотрим данные.