Skip to content

3.2.2

Choose a tag to compare

@Slait Slait released this 26 Nov 05:06
· 3 commits to main since this release
b54367c
  1. Увеличил параметр STEP_CNT с 1000 до 2000.
  2. Оптимизация для Nvidia 40xx и 50xx.
    2.1. Увеличение размера группы (PNT_GROUP)
    В алгоритме используется "Simultaneous Inversion" (одновременная инверсия) для группы точек. Это самая тяжелая математическая операция. Чем больше группа, тем "дешевле" обходится инверсия в пересчете на одну точку (одна тяжелая операция делит стоимость на N точек). Ранее мы использовали размер 24, чтобы данные влезали в маленький L2 кэш старых карт. Для RTX 40xx/50xx мы можем безопасно увеличить это число до 32 (размер варпа). Это даст прирост скорости, так как мы будем делать меньше инверсий на то же количество точек, а данные легко поместятся в L2 кэш Ada Lovelace.
    2.2. Адаптивное управление L2 кэшем
    В коде было ограничение на размер персистентного кэша. На новых картах мы можем запрашивать у драйвера максимально возможный размер L2 (так как он теперь огромный) и использовать его по максимуму, чтобы вообще не обращаться к видеопамяти (VRAM) в процессе вычислений.
    Я обновил GpuKang.cpp для динамического определения лимита L2.