Восемь музыкантов замерли перед началом симфонии. Их партия — по очереди давать ответы большой языковой модели. Но вот беда: если один опоздал, все остальные не могут играть — ни одной ноты. Так работают обычные процессоры: когда много ядер трудятся сообща над задачами машинного обучения, они должны встречаться в строго определённых точках (барьерах). Отлучка даже одного ядра подвешивает всю группу, а замена его другим может исказить результат.
В Anima OS — операционной системе на языке Rust — эту проблему решили, превратив жёсткую группу в гибкий оркестр без дирижёра. Каждое ядро-музыкант может войти или выйти только между музыкальными фразами — то есть между токенами (кусочками слов). Система использует простой протокол: перед началом фразы все ядра откликаются, соглашаясь играть, и из них составляется список. Этот список фиксируется, и дальше работа идёт только с теми, кто в него попал. Кто не успел — не страшно, он пропускает эту фразу, а его работу делают соседи.
Испытания на процессоре AMD Ryzen 9 с моделями SmolLM2-135M и Qwen2.5-7B показали: когда четверть времени отводилась ИИ, общая производительность для обычных задач выросла в 1,75 раза — с 327 до 574 служебных операций в секунду. При этом модель отвечала так же быстро, а каждое слово в точности совпадало с тем, что выдала бы строгая изолированная группа. Возврат занятого ядра происходил почти мгновенно — за 0,22 микросекунды (миллионной доли секунды). Даже если ядро было занято чужим процессом, его подхватывали максимум через 16 миллисекунд.
Гибкий оркестр ломает привычное правило, что синхронные вычисления нельзя делить с другими. Теперь языковые модели — не изолированные программы, а гибкие задачи, которые умеют договариваться о ресурсах. Как оркестр, который меняет состав между частями симфонии, процессор может одолжить ядра ИИ на миг и тут же вернуть их остальным делам. В будущем такое решение можно перенести в обычный Linux, адаптировать для мобильных процессоров и встроить в системы энергосбережения. Теперь опоздавшее ядро — не беда. Не успев к общему старту, оно просто пропускает такт, а гибкий оркестр продолжает играть — и ни одна нота не фальшивит.
Даже при 301 переключении задач за 10 секунд модель ни разу не выдала ни одного неверного слова, а скорость колебалась в пределах 0,9%.