Как уже не раз было заявлено, современные микропроцессорные архитектуры и процессоры плохо подходят на роль аппаратных платформ для машинного обучения и, собственно, для платформ с искусственным интеллектом. Чтобы было хорошо, компьютер по структуре и методу работы должен быть похож на мозг человека. «Венец природы» не лишён самолюбия, да. С другой стороны, эволюция сотни тысяч лет работала над проектом «человек» и в этом деле может считаться экспертом.
Человеческий мозг, как известно, оперирует не двоичной системой записи, а сложными химико-биологическими конструкциями с использованием импульсов с электрической природой. К тому же, память и процессор в мозгу — это монолитная структура, а не отдельно банк памяти с внутренней шиной и процессором. И, да, с точностью вычислений в голове могут быть сложности, но вы и сами об этом знаете.
Исследователи IBM расценили, что работа нейронных сетей для глубокого обучения не обязательна должна обладать такой же точностью, как исполнение двоичного кода. А раз высокая точность не нужна (для этого достаточно точности работы программной модели), то платформу для запуска задач на DNN (deep neural network) можно выполнить без использования сложных, но классических логических цепей с использованием многочисленных блоков для исполнения операций умножения и накопления.
Упрощённая платформа IBM для сетей с глубоким обучением предполагает использование аналоговой памяти. Иначе говоря, данные в ячейках памяти хранятся не в виде 0 или 1, а в виде некоего весового значения, которое вычисляется с приблизительной точностью и может иметь значительный разброс в значениях, включая выход далеко за пределы 1. В качестве примера аналоговой памяти можно привести магнитофонную магнитную плёнку или современные её виды — это резистивная память и память с ячейкой из вещества с изменяемым фазовым состоянием (phase-change memory, PCM).
Компания IBM так описывает работу аналоговой памяти: «Эта память позволяет выполнять операции умножения-накопления через распараллеливание с помещением в аналоговые домены весовых значений [данных], используя соответствующую физику [процесса]. Вместо больших цепей для умножения и сложения цифровых значений друг с другом, мы просто пропускаем небольшой ток через сопротивление в проводнике и затем просто соединяем множество таких проводников вместе, позволяя току нарастать. Это позволяет совершать множество вычислений одновременно, вместо выполнения последовательных операций».
Понятно, что с точностью у вычислений «проводок плюс проводок» будет не так хорошо, как в случае работы триггера. Но на опытах IBM показала, что точность работы определённых моделей нейронных сетей на аналоговой памяти достаточная для выполнения многих задач. По прикидкам, на основе разработки можно создать ускоритель работы DDN с энергетической эффективностью 28 065 Гигаопераций/с/Вт или с пропускной способностью 3,6 Тераопераций/с/мм2. Это будет в разы больше, чем при запуске нейронных сетей на графических процессорах с одинаковой точностью в вычислениях. К тому же, расчёт весовых значений и их изменение происходят непосредственно в запоминающем элементе, что устраняет необходимость в энергоёмкой передаче данных из памяти в процессор и обратно.