Обычно "эффективно" может быть мерой того, сколько циклов памяти и GPU (среднее, минимальное, максимальное) использует ваша программа.Тогда мерой эффективности будет avg (mem) / общий объем памяти за период времени и так далее с AVG (такты GPU) / макс. Циклы GPU.
Затем я сравнил бы эти метрики с метриками из некоторых наборов тестов GPU (которые можно считать довольно эффективными при использовании большей части GPU).Или вы можете сравнить некоторые случайные программы с интенсивным использованием графического процессора по вашему выбору.Я бы так и сделал, но я никогда не думал, что так удачи!
Что касается узких мест и "оптимальной" производительности.Вероятно, это проблемы NP-Complete, с которыми никто не может помочь.Выйдите из старого профилировщика и отладчиков и начните прокладывать свой код.