Специализированное оборудование решает задачи оптимизации высокого порядка
Рост ИИ, графической обработки, комбинаторной оптимизации и других приложений с интенсивным использованием данных привёл к появлению узких мест в обработке данных, поскольку все большие объёмы данных должны передаваться туда и обратно между памятью и вычислительными элементами компьютера. Физическое расстояние невелико, но процесс может происходить миллиарды раз в секунду. Неизбежно, энергия и время, необходимые для перемещения такого количества данных, складываются. В ответ на это компьютерные инженеры проектируют специализированные аппаратные ускорители с инновационной архитектурой для повышения производительности таких приложений.
Предыдущие попытки разработать аппаратное обеспечение для решения задач оптимизации включали машины Изинга — категорию аппаратных решателей, которые используют модель Изинга для нахождения абсолютного или приблизительного «основного состояния», например, минимума энергии.
До сих пор аппаратные архитектуры для машин Изинга могли эффективно решать задачи с квадратичными полиномиальными целевыми функциями, но не были масштабируемы для все более важных задач более высокого порядка, таких как сворачивание белка , прогнозирование электронной структуры, проверка моделей ИИ, маршрутизация цепей, диагностика неисправностей и планирование.
Исследования в этой области проводит Тиниш Бхаттачарья, докторант в лаборатории профессора электротехники и вычислительной техники Дмитрия Струкова в Калифорнийском университете в Санта-Барбаре. Он и несколько отраслевых сотрудников, а также академические коллеги в Европе и промышленный партнёр Hewlett Packard Labs разработали специализированное вычислительное оборудование для градиента функций, чтобы ускорить скорость решения сложных задач оптимизации высокого порядка.
Статья, описывающая их работу, «Вычисление высокостепенных полиномиальных градиентов в памяти», опубликована в журнале Nature Communications.
«Целевая функция любой задачи оптимизации, такой как рабочая нагрузка ИИ, представляет собой N-мерный «энергетический ландшафт», где каждая комбинация значений переменных представляет собой уникальную точку в этом ландшафте», — сказал Бхаттачарья, отметив: «Цель состоит в том, чтобы найти набор назначений переменных, который соответствует самой низкой — или, в более общем смысле, как можно ближе к самой низкой — точке в этом ландшафте».
В качестве параллели он предлагает реальный ландшафт.
«Представьте, что вы высоко в горах Сьерра-Невада, и ваша цель — найти самую низкую точку в заданной области как можно быстрее и с наименьшими усилиями. Чтобы достичь этого, очевидно, вы будете следовать по самому крутому склону. Информация о крутизне и направлении, в котором лежит самый крутой склон относительно того места, где вы стоите, даётся градиентом функции в этой точке. Вы продолжаете, делая пошаговые шаги и пересчитывая градиент после каждого, чтобы убедиться, что вы все ещё находитесь на самом крутом склоне», — объяснил он.
Этот пример постулирует трёхмерный ландшафт, который может быть представлен осями x, y и z, а вычисление градиента относительно просто. Практические задачи оптимизации, однако, могут иметь сотни тысяч переменных.
«Операция расчета градиента выполняется итеративно, снова и снова, и нам нужно иметь возможность делать это быстро и эффективно», — добавил он.
По словам Баттачарьи, большая часть предлагаемого в настоящее время современного оборудования для решения таких проблем ограничена задачами второго порядка. Он отметил, что главное преимущество их оборудования заключается в том, что оно может решать такие проблемы, как выполнимость булевых функций в их собственном пространстве высокого порядка без необходимости выполнять какую-либо предварительную обработку, что потенциально обеспечивает экспоненциальное ускорение по сравнению с текущими архитектурами оборудования, которые ограничены целевыми функциями второго порядка.
Как они это делают
Ключевым элементом нового оборудования является его способность выполнять вычисления в памяти внутри самого массива памяти, смягчая узкое место, которое возникает из-за перемещения огромных объёмов данных туда и обратно между памятью и процессором в классическом компьютере. Исследователи ускоряют операции, выполняя умножение матриц-векторов, математическую операцию, стоящую за шагом вычисления градиента, с помощью перекрестных массивов специализированных мемристорных устройств.
Огромное преимущество вычислений в памяти заключается в том, что их можно выполнить за время, независимое от размера матрицы. Для этого всегда требуется только один шаг, без перемещения данных туда и обратно, что значительно сокращает время решения.
Аппаратное обеспечение состоит из памяти с перекрестными стержнями — фактических рельефных поверхностей, литографированных на чипе, — где несколько линий слов (проводов) идут горизонтально, а несколько линий бит — вертикально. Размещение мемристора в каждом месте, где пересекаются линия слов и линия бит — с одним выводом устройства, подключенным к линии слов, а другим — к линии бит — образует массив мемристорных перекрестных стержней.
Матрица, кодирующая проблему, хранится в состояниях этих мемристоров. Вектор применяется как пропорциональные импульсы чтения на линиях слов. Результирующие токи, которые текут в линиях бит, затем отображают результат умножения вектора на матрицу.
Основная инновация, которая позволяет вычислять градиент полиномов высокого порядка в собственном (высокого порядка) пространстве, заключается в использовании двух таких массивов кроссбаров вплотную друг к другу. Оба кроссбара хранят матрицу, изображающую полином высокого порядка. Первый кроссбар вычисляет мономы высокого порядка полинома. Второй кроссбар использует этот результат в качестве входных данных для вычисления градиента высокого порядка для всех переменных в каждой из своих битовых линий.
Этот «массово параллельный» элемент подхода группы является ключом к их успеху.
«Под этим мы подразумеваем, что наше оборудование может вычислять градиенты для каждой из этих переменных одновременно, а не последовательно, как это делает большая часть современного оборудования», — сказал Бхаттачарья. «Это оптимизация, в одном отношении, тот факт, что мы сохранили это массивно параллельное свойство даже при переходе в это пространство высокого порядка».
С алгоритмической точки зрения, возможность оптимизировать собственную функцию высокого порядка, в отличие от сокращенной версии второго порядка, может привести к выигрышу в скорости почти на два порядка для задач, имеющих всего 150 переменных. Это все ещё на порядок меньше, чем большинство практически значимых задач, встречающихся в реальных сценариях, и ожидается, что выигрыш в скорости будет увеличиваться экспоненциально с добавлением большего количества переменных.
Мастер пера, обрабатывает новостную ленту.