Итак, я наконец-то получил возможность взглянуть на Mojo/Modular. Это не то, что я думал, это замена OpenCL + реализации ядер, а не компилятор ИИ. Хотя это значительно упрощает получение полной производительности быстро, я думаю, что полнота Тюринга — это ошибка для таких вещей. У нас наконец-то есть возможность жить в мире чистого потокового данных, почему бы нам не воспользоваться этим? Языки, подобные этому, не отделяют определение вычислений от планирования вычислений. Прочитайте диссертацию по Halide, я одержим этой идеей. Поскольку нейронные сети становятся все лучше в программировании, что мы хотим, так это самый лаконичный способ выразить *точно* то, что делает программа, не беспокоясь о деталях того, как. Оставьте это машинам. Обратите внимание на параметр "maybe_epilogue_func" здесь. Что если вам нужны две функции эпилога, сохраняющие в разные буферы, или цепочечные редукции? Цикл находится внутри этой функции свертки, так что менять уже поздно. Прочитайте tinygrad conv для контраста. "За десятилетия работы над компиляторами я никогда не видел, чтобы миф о "достаточно умном компиляторе" действительно срабатывал!" -- @clattner_llvm Мы ставим на то, что с современными методами поиска (читайте: ИИ) это наконец изменится. Хотя это совершенно справедливая ставка, чтобы занять другую сторону, и если это не сработает в следующие 10 лет, Mojo, вероятно, будет правильной точкой в пространстве компромиссов.