Выжимаем 100% из CPU в Google Colab: написал гибридный C++20/AVX2 движок, который рвет обычный Python в 40 раз на 50 000 000 объектов

Привет, подсайт Gamedev и технари DTF!


Решил устроить жесткий стресс-тест своему no-CUDA движку прямо под капотом бесплатного Google Colab (на стандартном двухъядерном CPU Intel Xeon) и сравнить его с обычным Python.


Задача хардкорная: загрузить, отфильтровать и квантовать (в bfloat16) массив на 50 000 000 объектов.


Вот сухие цифры замеров скорости:


1. Обычный Python-пайплайн (базовые циклы):

• Время: ~48.5 секунд.

• Итог: Процессор кочегарит, GIL всё тормозит, память забита под завязку, данные гоняются туда-сюда.


2. Мой гибрид (C++20 ядро + векторные инструкции AVX2 + Python-обертка):

• Время: всего ~1.2 секунды! (Ускорение > 40 раз).

• Как это сделано: Движок на максимум использует SIMD. Вместо обработки по одному объекту, CPU за один такт щелкает целую пачку данных прямо в регистрах, минуя медленную аллокацию памяти.


Бонус: Потребление RAM упало в 3 раза за счет плотной упаковки в bfloat16. Видеокарта (CUDA) не трогается вообще — всё летит на обычном бесплатном проце.


Развернул готовый шаблон, всё запускается в одну ячейку в Colab, ничего локально собирать не нужно:

👉 https://github.com/nlozkina19-crypto/vector-zero-compute


Залетайте тестить на своих объемах. Пишите в комменты, сколько долей секунды выдал ваш проц на этом бенчмарке, померяемся скоростью!

2
2
1
3 комментария