IBM представила NorthPole — энергоэффективный чип, который позволяет выполнять задачи нейросетей на основе логических выводов. В задачах классификации изображений или транскрипции звука он может быть в 35 раз более эффективен, чем графический процессор.
Обучение новых систем энергозатратно, поскольку обычно требует огромных наборов данных и большого количества времени выполнения. Задачи уже обученной системы можно выполнять на смартфонах, но при многократном повторении они потребляют большой объём энергии.
NorthPole специально разработали для нейронных сетей, ориентированных на логические выводы. В его реализации использовали некоторые идеи из нейроморфных вычислительных чипов, в том числе из TrueNorth, но он не имитирует импульсные соединения. Разработка базируется на том, что большая часть затрат при использовании ИИ связана с разделением памяти и исполнительных блоков. Поскольку ключевой компонент нейронных сетей — вес связей между различными слоями «нейронов» — хранится в памяти, выполнение задач на традиционном или графическом процессоре потребляет много энергии, просто перенося эти веса из памяти туда, где их можно использовать.
Таким образом, NorthPole, как и TrueNorth, состоит из большого массива (16×16) вычислительных блоков, каждый из которых включает в себя как локальную память, так и возможности выполнения кода. Это позволяет хранить веса различных связей именно там, где они необходимы.
Ещё одна особенность — четыре отдельные сети внутри кристалла, некоторые из которых переносят информацию из завершённых вычислений в вычислительные блоки, где она понадобится в следующий раз. Другие используются для реконфигурации всего массива вычислительных блоков, предоставляя нейронные веса и код, необходимые для выполнения одного уровня задач нейронной сети, пока вычисления предыдущего уровня продолжаются. Наконец, оптимизация связи между соседними вычислительными блоками полезна для таких задач, как поиск края объекта на изображении.
Каждый блок оптимизирован для выполнения вычислений с более низкой точностью — от двух до восьми бит. Хотя для обучения часто требуется более высокая точность, значения, необходимые во время выполнения, обычно не требуют такого уровня. Чтобы эти исполнительные блоки оставались в использовании, они не способны выполнять условные переходы на основе значений переменных — это означает, что код не может содержать оператор «if». Эта простота выполнения делает каждый вычислительный блок способным к массовому параллельному выполнению. С двухбитной точностью каждое устройство может выполнять более 8000 вычислений параллельно.
Из-за всех этих особенностей конструкции команде NorthPole пришлось разработать собственное обучающее программное обеспечение, которое определяет минимальный уровень точности, необходимый на каждом уровне.
После того, как веса и связи нейронной сети помещены в буферы на чипе, для выполнения просто требуется внешний контроллер — обычно ЦП — чтобы загрузить данные, с которыми он должен работать. Далее процесс происходит без участия ЦП, что также должно ограничить энергопотребление на уровне системы.
Тестовые чипы NorthPole были построены по 12-нм техпроцессу. Тем не менее, они включают 256 вычислительных блоков, каждый с 768 килобайтами памяти, на чипе из 22 млрд транзисторов.
Систему опробовали с графическим процессором Nvidia V100 Tensor Core, который был изготовлен с использованием аналогичного техпроцесса. NorthPole удалось выполнить в 25 раз больше вычислений при затрате того же количества энергии. По этому же показателю он может превзойти передовой графический процессор примерно в пять раз. Испытания системы показали, что она способна эффективно выполнять ряд широко используемых задач нейронных сетей.
Источник новости: habr.com