Skip to content

3.2.1

Choose a tag to compare

@Slait Slait released this 25 Nov 17:58
· 4 commits to main since this release
f24cd05

Прирост скорости ~8%
Что было сделано:

Анализ узкого места: Выявлено, что функция SqrModP (возведение в квадрат по модулю) создавала чрезмерную нагрузку на регистровый файл GPU, вычисляя большой массив mar[28] (224 байта) целиком перед использованием. Это приводило к вытеснению данных в медленную память.

Оптимизация SqrModP:
Реализовано "чередование" (Interleaving) вычислений: элементы массива mar теперь вычисляются небольшими группами непосредственно перед их использованием в функциях сложения. Это позволяет освобождать регистры сразу после использования данных.
Устранен указатель m32, который мог мешать компилятору эффективно размещать переменные массива mar в регистрах.

Проверка корректности: Математическая логика функции не изменена — изменен только порядок выполнения независимых операций умножения. Это гарантирует, что итоговый результат вычислений останется прежним, но скорость работы GPU-ядра увеличится за счет уменьшения задержек памяти.