ИИ и развёртка в фотонику. железо.. железо. ИИ.. железо. ИИ. искусственный интеллект.. железо. ИИ. искусственный интеллект. Компиляторы.. железо. ИИ. искусственный интеллект. Компиляторы. компиляция.. железо. ИИ. искусственный интеллект. Компиляторы. компиляция. Компьютерное железо.. железо. ИИ. искусственный интеллект. Компиляторы. компиляция. Компьютерное железо. Машинное обучение.. железо. ИИ. искусственный интеллект. Компиляторы. компиляция. Компьютерное железо. Машинное обучение. Производство и разработка электроники.. железо. ИИ. искусственный интеллект. Компиляторы. компиляция. Компьютерное железо. Машинное обучение. Производство и разработка электроники. фотоника.. железо. ИИ. искусственный интеллект. Компиляторы. компиляция. Компьютерное железо. Машинное обучение. Производство и разработка электроники. фотоника. Электроника.

Всем очевидно: индустрия ИИ стремительно развивается. Но здесь появляется одно гигантское слоноподобное НО. В последнее десятилетие лидеры ИИ предпочли развиваться экстенсивно – то есть, например, ЛЛМ максимизируют объём моделей. Это в свою очередь тянет за собой целую цепочку гигантских затрат: от электростанций до передовых числодробилок. Из последнего – xAI готовится запустить вычислительную фабрику мощностью 1 ГВт с 500-ми тысячами видеоускорителей! Можно по разному относиться к хайпу вокруг ИИ, но очевидно одно – есть много желающих вкладываться по полной программе в эти технологии. И, возможно, впоследствии экстенсивный рост перейдёт в интенсивный, то есть количество перейдёт в качество. Проблема только в том, что на низком уровне – уровне железа – техника подходит к физическим пределам. И если не сменить парадигму и физическую основу, то поддерживать развитие индустрии никакими средствами кроме масштабирования не получится.

Стена проблем.

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

Индустрия чипов переключилась на проталкивание многоядерных решений в массы. Но выигрыш достигается не всегда. В частности отдельное приложение с отдельным потоком далеко не всегда способно использовать возможности многопоточности. Здесь есть теоретический предел – закон Амдала. К тому же, написание многопоточных приложений разительно (в 5-7 раз) сложнее линейных.

Физические ограничения транзисторных чипов также порождают такие проблемы:

СБИС

СБИС

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

  1. Перегрев. И как следствие необходимость отвода большого количества тепла.

  2. Высокое энергопотребление, которое перестало снижаться достаточными темпами после 2006 года. Что выливается в гигантские затраты на электроэнергии в вычислительных центрах.

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

    frac{1}{text{3 ГГц}}

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

  5. Указанные факторы снижают пропускную способность устройств (throughput), не позволяя ВЦ эффективно масштабировать нагрузку.

Пространство-время в информатике

Для специализированных применений, наподобие блокчейна или специальных типов ИИ, возможно создавать заказные решения в виде ASIC-ов. Но что-то покупка крупнейшего их производителя – Altera – не помогла Intel.

Нужно заметить, что самые продвинутые ИИ-технологии основаны на вычислениях матриц, то есть использовании SIMD-подхода. Это вполне понятный и очевидный метод масштабирования вычислений “вширь” – операции проводятся широким фронтом с использованием разных SSEx, AVX или GPGPU, обрабатывая, например, сразу всю строку матрицы. Это увеличивает пропускную способность, но недостаточно, и узкое место в виде медленного доступа к памяти здесь усугубляет ситуацию.

Вычисление — это не только последовательность операций, но и распределение этих операций во времени и пространстве. Чем глубже мы задумываемся о связях между вычислительными элементами, тем яснее становится: архитектура — это геометрия алгоритмов. Расстояние между элементами, задержки, синхронизация — всё это влияет на конечную производительность.

О преобразовании пространства во время и обратно есть фантастический рассказ-хоррор.

Развёртка в длину

Тут надо отдельно отметить, что такой развёртке в длину вычисления легче подвергаются тогда, когда они являются функциональными и чистыми в функциональном смысле, то есть не привносят сторонних эффектов. Конечно результат не обязан быть неким примитивным значением, типа да/нет. Результаты вполне себе сносно образуют агрегаты, например в виде списков в Лиспе – которые суть тоже чистые функции.

Когда-то, на заре своей компьютерной грамотности, я посещал спецкурс по олимпиадному программированию в одном из СУНЦ (физматшколе). Понятно, писали там многие по-школьному, на Паскале. Но это не суть важно. Так вот препод задал задачу: нужно реализовать какую-то простую программу (что-то вроде HelloWorld), но используя всего две ячейки памяти (т.е. 2 переменных). Все недоумевали, но, оказывается, решение вполне возможно (даже на Паскале). Это был пример развёртывания программы во времени (или в длину – тут как смотреть) – т.е. пространство (доступная память) сжималось в ширину, но было доступно неограниченное пространство для самого кода программы, и он становился длиннее, а значит либо потенциально дольше выполнялся – за большее количество тактов, либо выполнялся на более сложной и длинной схеме.

Вообще есть известный широко известный математический конструкт, который вполне иллюстрирует размен вычислительного пространства на время. Это машина Тьюринга – основное доказательство вычислимости того или иного объекта. Как известно она представлена небольшим устройством, которое считывает и изменяет бесконечную ленту, основываясь на небольшом количестве (около десятка) правил. Если считать правила частью механизма машины, а ленту – алгоритмом, то по сути у этой модели тоже есть лишь минимальное пространство – ячейка текущего состояния.

Предвычисления

Чуть позже у меня возникала идея свести исполнение программы к вычислению некой обобщённой функции. В этом случае вся программы представляется как некая функция-отображение из пространства входных данных (параметров) в пространство выходных данных – некий результирующий агрегат. В чём-то это похоже на функциональщину, но здесь выходная функция не задаётся кодом алгоритма, она как бы уже предварительно вычислена на этапе компиляции, и нужно лишь подставить параметры – входные данные программы. Пространство параметров при этом понимается в самом общем виде, мы учитываем все возможные интервалы значений по всем измерениям и рассматриваем их декартово произведение. Какие именно интервалы значений учитывать – задаёт исходный код алгоритма, а именно каждое условное ветвление разбивает интервал соответствующего параметра на части. Таким образом реализуется итоговая предвычисленная функция, значение которой зависит только от входных данных. С идеей такого подхода к компиляции я в своё время даже обратился к известному в узких кругах специалисту – Голосову И.С., бывшему тогда моим шефом, в надежде получить совет или критику. В итоге директор, опытный в таких вопросах – разборе разных идей и предложений – за 30 секунд накидал мне 4 или 5 критических замечаний, которые я даже запомнить все не успел. Помню лишь самое серьёзное – проблемы синхронизации и в целом многопоточности, о том как оно будет ложиться на такой подход. И проблема вполне понятная – в функциональном программировании, например, всё хорошо работает только в случае чистых функций.

Уже много позже я осознал, что моя “блестящая” идея предвычисления – по сути вариант реализации кэша, и, насколько я знаю, в том же Spring-е он может быть параметризован, т.е. по сути быть такой вот предвычисленной функцией.

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

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

Всё довольно просто

Засечка находится на определённом расстоянии от начала бруска и делит его в заданном отношении, это отношение задаётся вещественным числом, которое по сути бесконечная дробь, и цифры этого числа – код формулы мира.

Фотоника

Ну и вот, наконец, мы добрались до самого главного. Причём здесь фотоника?

ИИ и развёртка в фотонику - 3

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

ИИ и развёртка в фотонику - 4

Конечно же главным преимуществом фотоники (в чистом виде) является молниеносная скорость – как скорость распространения сигнала, так и скорость переключения (по сути тоже скорость света). Состояние чистой фотонной системы меняется не в конце такта, а моментально, реагирование на изменение сигнала происходит мгновенно. Наверняка, это может найти применение в системах реального времени.

Одним из недостатков на текущий момент являются более крупные габариты элементов схемы по сравнению с современными СБИС. Основным недостатком является трудность сохранения состояния. Есть некоторые механизмы, способные это обеспечить, но непонятно их быстродействие и удобство интеграции с другими структурами (вентилями). То есть, похоже, что оперативной памяти нет в принципе, а существующие ячейки хранения больше напоминают конфигурацию ПЛИС, возможно с большим быстродействием. Теперь вам понятно, почему я рассказывал о способах вычислений, требующих минимального объёма памяти, то бишь сжатия пространства данных в пользу растяжения длины схемы – с чем в случае фотоники проблем особых нет, или растяжения данных во времени – в этом случае данные будут подаваться на вход последовательно во времени. Надо сказать, что фотоника предполагает использование в том числе и широких форматов данных с их параллельной обработкой – по той простой причине, что волноводы и вентили могут обрабатывать свет разных цветов (т.е. длин волн) одновременно.

Ограниченное хранение данных налагает особые свойства на вычислительную систему на основе фотоники. В этом смысле они будут больше похожи на ASIC-и или в лучшем случае на ПЛИСы. И соответственно программирование такой системы осуществляется наподобие проектирования ПЛИС схемы, алгоритмы преобразуются в нечто наподобие кода на Verilog или VHDL, и в итоге код будет зашит в схему. То есть фотоника – это пока оперирование на уровне железа, с предопределёнными параметрами. Тем не менее, такой режим вполне подходит для режима инференса ИИ, причём с гигантской пропускной способностью. Многие проблемы ИИ таким образом это даже может решить.

ИИ и развёртка в фотонику - 5

Есть некоторые компании, пытающиеся развивать фотонику – Lightelligence, Light Matter. Ну и конечно направление Photonics в компании NVidia, которая купила Mellanox, уже применяет фотонику не только для сетевых интерконнектов, но и внутри своих стоек.

Автор: mahairod

Источник

Rambler's Top100