Специализированное оборудование решает задачи оптимизации высокого порядка

Прочитано: 69 раз(а)


Рост ИИ, графической обработки, комбинаторной оптимизации и других приложений с интенсивным использованием данных привел к появлению узких мест в обработке данных, поскольку все большие объемы данных должны передаваться туда и обратно между памятью и вычислительными элементами компьютера. Физическое расстояние невелико, но процесс может происходить миллиарды раз в секунду. Неизбежно, энергия и время, необходимые для перемещения такого количества данных, складываются. В ответ на это компьютерные инженеры проектируют специализированные аппаратные ускорители с инновационной архитектурой для повышения производительности таких приложений.

Предыдущие попытки разработать аппаратное обеспечение для решения задач оптимизации включали машины Изинга — категорию аппаратных решателей, которые используют модель Изинга для нахождения абсолютного или приблизительного «основного состояния», например, минимума энергии.

До сих пор аппаратные архитектуры для машин Изинга могли эффективно решать задачи с квадратичными полиномиальными целевыми функциями, но не были масштабируемы для все более важных задач более высокого порядка, таких как сворачивание белка , прогнозирование электронной структуры, проверка моделей ИИ, маршрутизация цепей, диагностика неисправностей и планирование.

Исследования в этой области проводит Тиниш Бхаттачарья, докторант в лаборатории профессора электротехники и вычислительной техники Дмитрия Струкова в Калифорнийском университете в Санта-Барбаре. Он и несколько отраслевых сотрудников, а также академические коллеги в Европе и промышленный партнер Hewlett Packard Labs разработали специализированное вычислительное оборудование для градиента функций, чтобы ускорить скорость решения сложных задач оптимизации высокого порядка.

Статья, описывающая их работу, «Вычисление высокостепенных полиномиальных градиентов в памяти», опубликована в журнале Nature Communications.

«Целевая функция любой задачи оптимизации, такой как рабочая нагрузка ИИ, представляет собой N-мерный «энергетический ландшафт», где каждая комбинация значений переменных представляет собой уникальную точку в этом ландшафте», — сказал Бхаттачарья, отметив: «Цель состоит в том, чтобы найти набор назначений переменных, который соответствует самой низкой — или, в более общем смысле, как можно ближе к самой низкой — точке в этом ландшафте».

В качестве параллели он предлагает реальный ландшафт.

«Представьте, что вы высоко в горах Сьерра-Невада, и ваша цель — найти самую низкую точку в заданной области как можно быстрее и с наименьшими усилиями. Чтобы достичь этого, очевидно, вы будете следовать по самому крутому склону. Информация о крутизне и направлении, в котором лежит самый крутой склон относительно того места, где вы стоите, дается градиентом функции в этой точке. Вы продолжаете, делая пошаговые шаги и пересчитывая градиент после каждого, чтобы убедиться, что вы все еще находитесь на самом крутом склоне», — объяснил он.

Этот пример постулирует трехмерный ландшафт, который может быть представлен осями x, y и z, а вычисление градиента относительно просто. Практические задачи оптимизации, однако, могут иметь сотни тысяч переменных.

«Операция расчета градиента выполняется итеративно, снова и снова, и нам нужно иметь возможность делать это быстро и эффективно», — добавил он.

По словам Баттачарьи, большая часть предлагаемого в настоящее время современного оборудования для решения таких проблем ограничена задачами второго порядка. Он отметил, что главное преимущество их оборудования заключается в том, что оно может решать такие проблемы, как выполнимость булевых функций в их собственном пространстве высокого порядка без необходимости выполнять какую-либо предварительную обработку, что потенциально обеспечивает экспоненциальное ускорение по сравнению с текущими архитектурами оборудования, которые ограничены целевыми функциями второго порядка.

Как они это делают

Ключевым элементом нового оборудования является его способность выполнять вычисления в памяти внутри самого массива памяти, смягчая узкое место, которое возникает из-за перемещения огромных объемов данных туда и обратно между памятью и процессором в классическом компьютере. Исследователи ускоряют операции, выполняя умножение матриц-векторов, математическую операцию, стоящую за шагом вычисления градиента, с помощью перекрестных массивов специализированных мемристорных устройств.

Огромное преимущество вычислений в памяти заключается в том, что их можно выполнить за время, независимое от размера матрицы. Для этого всегда требуется только один шаг, без перемещения данных туда и обратно, что значительно сокращает время решения.

Аппаратное обеспечение состоит из памяти с перекрестными стержнями — фактических рельефных поверхностей, литографированных на чипе, — где несколько линий слов (проводов) идут горизонтально, а несколько линий бит — вертикально. Размещение мемристора в каждом месте, где пересекаются линия слов и линия бит — с одним выводом устройства, подключенным к линии слов, а другим — к линии бит — образует массив мемристорных перекрестных стержней.

Матрица, кодирующая проблему, хранится в состояниях этих мемристоров. Вектор применяется как пропорциональные импульсы чтения на линиях слов. Результирующие токи, которые текут в линиях бит, затем отображают результат умножения вектора на матрицу.

Основная инновация, которая позволяет вычислять градиент полиномов высокого порядка в собственном (высокого порядка) пространстве, заключается в использовании двух таких массивов кроссбаров вплотную друг к другу. Оба кроссбара хранят матрицу, изображающую полином высокого порядка. Первый кроссбар вычисляет мономы высокого порядка полинома. Второй кроссбар использует этот результат в качестве входных данных для вычисления градиента высокого порядка для всех переменных в каждой из своих битовых линий.

Этот «массово параллельный» элемент подхода группы является ключом к их успеху.

«Под этим мы подразумеваем, что наше оборудование может вычислять градиенты для каждой из этих переменных одновременно, а не последовательно, как это делает большая часть современного оборудования», — сказал Бхаттачарья. «Это оптимизация, в одном отношении, тот факт, что мы сохранили это массивно параллельное свойство даже при переходе в это пространство высокого порядка».

С алгоритмической точки зрения, возможность оптимизировать собственную функцию высокого порядка, в отличие от сокращенной версии второго порядка, может привести к выигрышу в скорости почти на два порядка для задач, имеющих всего 150 переменных. Это все еще на порядок меньше, чем большинство практически значимых задач, встречающихся в реальных сценариях, и ожидается, что выигрыш в скорости будет увеличиваться экспоненциально с добавлением большего количества переменных.

Специализированное оборудование решает задачи оптимизации высокого порядка



Новости партнеров