Количество ядер CUDA и потоковых мультипроцессоров для скорости вывода - PullRequest
0 голосов
/ 17 января 2020

Насколько я понимаю, количество ядер CUDA графического процессора NVIDIA определяет, насколько быстро он может работать с одной моделью глубокого обучения.

Итак, если я запускаю вывод на модели за 0,5 секунды с графическим процессором NVIDIA TITAN RTX, который имеет 72 потоковых мультипроцессора и 4608 ядер, и использует графический процессор с максимальной загрузкой ~ 10%, могу ли я предположить, что используется 10% потоковых мультипроцессоров (примерно 7)? Таким образом, примерно ~ 900 ядер CUDA используются? (Я основываюсь на этом ответе: https://superuser.com/questions/1109695/how-to-determine-number-of-gpu-cores-being-utilized-for-a-process)

В результате, если я перейду на более низкий GPU с 3000 ядер CUDA, теоретически он все еще сможет выполнить вывод с той же скоростью 0,5 секунды, верно?

1 Ответ

2 голосов
/ 17 января 2020

Это не правильная интерпретация использования. Использование 10% означает, грубо говоря, 10% времени, когда работает ядро ​​GPU. 90% времени ядро ​​GPU не работает. Он ничего не говорит вам о том, что делает ядро ​​GPU, или о том, сколько ресурсов оно использует. Ответ на суперпользователя неверен. Правильное описание здесь . Можно, как указано там, продемонстрировать 100% -ное использование для ядра GPU, которое использует только одно «ядро» (ie. Ядро, которое использует только один поток).

Что касается вашего вопроса, вы не следует предполагать, что не произойдет никаких изменений в производительности, если вы переключитесь с графического процессора с 4608 ядрами на графический процессор с 3000 ядрами. Во-первых, этой информации недостаточно для оценки производительности (например, тактовой частоты и других факторов), а во-вторых, если вы, например, предположили, что они являются графическими процессорами одного поколения, графический процессор с 3000 ядрами, вероятно, будет несколько медленнее, чем GPU из 4608 ядер. Это связано с тем, что для данной архитектуры GPU используются другие вещи, такие как тактовая частота, пропускная способность памяти и т. Д. c. скорее всего, будет ниже на GPU с 3000 ядер.

Короче говоря, я бы не предполагал, что производительность вывода будет такой же. Это зависит от других вещей, помимо того, что вы указали здесь. Я думаю, что это может быть быстрее, а может и медленнее, в зависимости от фактического сравнения графических процессоров.

Что касается графических процессоров CUDA, которые доступны в настоящее время, то почти все, вероятно, будет несколько медленнее в производительности логического вывода, чем Titan. RTX. Разница может быть небольшой, возможно незначительной или большей, в зависимости от спецификации c GPU.

...