Реализация на CUDA
https://github.com/mihaild/dxdy/blob/ma ... al/main.cu. Условное вычитание дало прирост примерно 20% к производительности, алгоритм Барретта при умножении еще примерно утроение. В итоге до

считается за 390 секунд, до

обещает 10 часов. Еще процентов на 10 можно было бы ускорить отправкой всех чисел на подсчет сразу, но мне больше нравится возможность следить за прогрессом.
-- 11.09.2025, 20:11 --Удиивтельно что LLM выдал достаточно хороший код, действительно внезапно
Там в целом ничего сложного. Но всю обвязку с копированием я совсем не знаю, как писать, а читать документацию всегда было лень.
В целом у меня просто сильно устаревшее представление о GPU. Я как-то не задумывался, что на них можно на каждом ядре цикл с целочисленной арифметикой считать.
Нашлись девятки
125816333: [4168573, 41608562, 51583106, 53564485, 59596441, 64874051, 66242996, 109743687, 124273619]
128096569: [31083535, 36979974, 47158457, 47485268, 49934824, 60255887, 61654817, 69144802, 75898499]
137719801: [22771441, 34650819, 45451974, 63934796, 67245188, 87495486, 111732945, 116580790, 119821025]
150036223: [24363564, 39953214, 50425127, 68163059, 83537136, 86980045, 108542657, 112341436, 139766002]
Больше, наверное, девятки выкладывать смысла нет. Посмотрим, что найдется до миллиарда.
(Оффтоп)
Первый раз такой шум от GPU, и 83 градуса. Ну зимой буду считать до десяти миллиардов.