Показывает ли ваша программа существенное расхождение отраслей?Если вы выполняете, например, 100 деформаций и только 5 из них ведут себя по-разному, и они работают в 5 SM, вы увидите только 21 временной цикл (ожидая 20) ... увеличение на 5%, которое можно легко победить, выполнив в 2 раза больше работы.в каждом потоке, чтобы избежать редких расхождений.
За исключением этого, 520 является довольно современной видеокартой и может включать в себя современные методы планирования SIMT, например, динамическое формирование деформации и уплотнение блоков потоков, чтобы скрыть остановки SIMT.Может быть, посмотрите на архитектурные особенности (спецификации) или напишите простой тест, чтобы сгенерировать n-стороннее расхождение ветвей и измерить замедление?
Кроме этого, проверьте, где находятся ваши переменные.Влияет ли их разделение на производительность / результаты?Поскольку вы всегда получаете доступ ко всем переменным во второй и первой, вы можете избежать доступа к nDimension, поэтому медленный (несообщенный глобальный?) Доступ к памяти может объяснить это.
Просто некоторые вещи, о которых стоит подумать.