Я разрабатываю код вычисления вычислительной жидкости (CFD) с использованием CUDA. Поскольку я выполняю некоторые тесты ускорения на одном графическом процессоре Tesla K40 (по сравнению с процессором Intel Xeon E5 v2) для разных размеров проблем, графический процессор демонстрирует более высокую скорость, увеличивая размер проблемы. Например, я получаю ускорение в 1,5 раза за ~ 1 миллион элементов, в то время как он улучшает до ~ 11x для 10 миллионов элементов.Производительность графических процессоров зависит от количества элементов (problem_size)
Я не знаю, теоретически, что вызывает более высокую производительность для больших проблем? Собственно, это также тот случай, который я видел во многих научных (особенно жидкостной механике) приложениях, работающих на GPU. (Мне было интересно, затронуты ли что-то вроде служебных данных ядра, латентности и т. Д.)
Спасибо за любой ответ или комментарий!
PS: По ускорению я имею в виду отношение времени выполнения кода графического процессора к времени выполнения версии ЦП. Фактически, я увеличиваю размер проблемы в обеих версиях (и, конечно, применяю одинаковый размер проблемы для обоих в каждом сравнительном тесте) и пересчитываю ускорение для соответствующего размера проблемы.
Ускорение относительно того, что? – Drop
Как я уже говорил; ускорение по сравнению с процессором. – Siamak
Вы должны предоставить более подробную информацию. Как скорость на элемент? Получаете ли вы относительное увеличение производительности, потому что GPU становится быстрее для каждого элемента (вероятно, из-за скрытых задержек) или из-за того, что процессор становится медленнее (возможно, размер кеша). – havogt