Привет, синтеты.Помните демона?
Крутые результаты и неведомые доселе ускорения умножения матриц.
Но, давайте на чистоту, тут не всё так просто. Есть такое понятие как cherry-picking - когда выбираешь только презентабельные результаты и выкладываешь всё в одном оттенке и привкусе. Как доказательная база конкретных примеров - нормально. Но без графы "honest limitations" выглядит не очень.
Поэтому посты о Демоне вызывали и ажиотаж, и дикую бурю внутри умов, пятых точек и сердечные излияния: в них не было полной картинки. Не было ablation studies: все методы в честной борьбе с кристально чистым wall-clock - кто когда стартовал, кто где троттлил - и исключение по одному элементу, чтобы показать, что каждый делает НА САМОМ ДЕЛЕ.
Я не учёный. Я любитель, случайно забредший на крайне интересную территорию. Теория хаоса, фазовые пространства, спектральные ряды, якоря для предсказания дороги к аттрактору... увлекательная штука... но, не будучи специалистом и даже не пройдя курсов по линейной алгебре, я прошёл ровно тот же путь, что и все, кто открыл форму аттрактора Лоренца и увидел в нём сигнал к предсказаниям чего угодно. Мощная истерия, которая при раскрытии (Лоренц давал ложный сигнал) уничтожила тонны трудов: 85% научного мира верили, что через Лоренца и Такенса можно предсказать даже смерть человека, не говоря о фондовых рынках.
Поэтому был ряд постов, подтверждённых не теорией, не шизо хероборой... а реальными вычислениями... они легитимные... просто в них подвох. Подвох вот в чём. Демон умножает не быстрее - он умножает меньше. Ускорение берётся из самих данных: строки потока похожи, большую часть работы можно предсказать и пропустить. Подсунь случайные числа - паритет. Ответ не побитовый, а в пределах допуска, и проверка вероятностная: при ошибке ровно в допуск промах в 1.9% случаев. Старые цифры считались в операциях, не в секундах, и против слабых соперников - на чистом wall-clock против OpenBLAS и cuBLAS множители усохли в разы. "Топология случайных матриц" от Такенса оказалась структурой метода и системы счисления, а не данных. Тот же Лоренц, только в профиль.
И когда я начал формулировать всё через критику точности вычислений, будь то FP16, 32, 64 или плавающая точка - это отдельные истории: ложатся +- на схожие операции, но фундаментально расходятся в определении задачи и интерпретации ответа.
Что мы делаем?Ускоряем само умножение на уровне самых низких операций железа? (Сетунь троичная с демоном: 72% разрядных операций лишние, на x86 это ноль.) Убираем вычисления? Убираем флопсы за счёт времени? Быстрее за счёт памяти? Спекулятивно через наблюдателя?
Я находился если не между 7-ю вариациями, то между 12-ю точно. А ведь есть разница между ускорением самих операндов и ускорением по wall-clock. Везде свои торговли: пропуск покупается риском, память вместо счёта - объёмом, наблюдатель - прогревом и порогом, ниже которого cuBLAS выигрывает всегда. Операнды, секунды, энергия - три разных числа для одного кода.И тут я остановился... оглянулся и понял.
У всего есть унифицированная возможность существовать, если определить демона как программный комплекс, который заставляет любые вычисления иметь память и работать умнее. Это заход в эпоху умных вычислений всего.
Где экономия? В скипе, в предсказании. Много вычислений не влияют на итог; ловить это наблюдателем и забором - значит выдать машине разрежённую среду, в которой она скользит как по маслу. При этом с памятью для конкретных сегментов и возможностями, которых в вычислениях до этого не существовало в принципе.
Цифры после чистки, секунды, медианы. CPU, подмена BLAS без правки программ: numpy 7.5×, R 4.7×, Octave 3.6×, scikit-learn до 6×, физика 7×, решатель 3.5× при совпадении до 15 знаков.
RTX 3080 Ti против cuBLAS: цепочки 10-27×, одно большое умножение 5-9×, мелкие и случайные - паритет.
Фото с шумом и белый шум - паритет: структуры нет, демон отошёл.
Ни одного ответа вне допуска. Вот это и есть полная картинка.Но...а что дальше?
🦆🦆🦆
Поддержать канал ₽ / $ / ₿