You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Увеличил параметр STEP_CNT с 1000 до 2000.
Оптимизация для 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.