Группа разработчиков начала программировать нейросети и другие алгоритмы искусственного интеллекта на языке ассемблера — самом низкоуровневом языке программирования, который напрямую управляет аппаратными регистрами процессора. По их словам, текущая ситуация напоминает интернет в 1991 году, когда ключевая инфраструктура уже существовала, но привычного веба ещё не было.
Ассемблер, известный своей сложностью и высокими требованиями к квалификации программиста, даёт полный контроль над железом. В отличие от популярных фреймворков на Python (TensorFlow, PyTorch), ассемблерный код может выполняться с минимальной задержкой и без накладных расходов на интерпретацию или сборку мусора. Это может быть критично для встраиваемых систем, робототехники, дронов, где каждый такт процессора на счету.
Пока что такие проекты носят экспериментальный характер. Нет открытых репозиториев с полноценными ассемблерными бэкендами для обучения нейросетей — речь скорее о реализации отдельных узких операций: свёрток, активаций, алгоритмов обратного распространения. Однако энтузиасты подчёркивают, что именно на ассемблере можно добиться предельной энергоэффективности, что актуально для мобильных устройств и IoT.
Сравнение с интернетом 1991 года означает, что технология находится на стадии «сырых прототипов». В 1991 году уже существовали протоколы TCP/IP, DNS, электронная почта и FTP, но браузеров и веб-страниц ещё не было. Аналогично сейчас есть мощные нейросети, обученные на GPU с помощью высокоуровневых API, но подходы, заточенные под конкретное «железо» на ассемблере, пока не сложились в индустриальный стандарт.
Появление компиляторов, способных транслировать типовые операции ИИ в ассемблерный код, могло бы стать тем самым «вебом» для данной области. Пока же разработчики вручную оптимизируют критические участки. Некоторые даже создают собственные микро-ядросные программы для ускорения инференса на специализированном чипе.
Пока нет данных о том, какие именно модели запускаются на ассемблере — вероятно, это простые перцептроны или небольшие свёрточные сети. Но сам факт такого экспериментирования показывает, что эволюция ИИ не ограничивается машинным обучением на Python: аппаратная оптимизация возвращается в повестку.
Напомним, что ещё в эпоху первых нейрокомпьютеров (1980-е) многие алгоритмы писались на ассемблере из-за ограниченной производительности машин. Сейчас, с появлением нейроускорителей и тензорных блоков в процессорах, интерес к низкоуровневому программированию ИИ снова растёт. Вопрос лишь в том, когда появится удобный инструмент, который сделает ассемблерную оптимизацию доступной массовому разработчику.




