Вы почти на месте - теперь, когда вы знаете о некоторых различных вариантах, последний шаг - спросить себя, какое именно время вы хотите измерить. Там нет правильного ответа на это, потому что это зависит от того, что вы пытаетесь сделать с измерением. Время CPU и GPU - именно то, что вам нужно, когда вы пытаетесь оптимизировать вычисления, но они могут не включать такие вещи, как ожидание, которые на самом деле могут быть довольно важными. Вы упоминаете & ldquo; фактическое время показа & rdquo; & Mdash; это начало. Вы имеете в виду полное время выполнения задачи & mdash; с момента, когда пользователь запускает программу, пока ответ не выплевывается и программа не заканчивается? В некотором смысле, это действительно единственное время, которое действительно имеет значение.
Для таких чисел в системах типа Unix мне нравится просто измерять все время выполнения программы; /bin/time myprog
, предположительно, есть эквивалент Windows. Это хорошо, потому что это совершенно неубедительно. С другой стороны, потому что это общий итог, он слишком широк, чтобы быть полезным, и не очень хорошо, если в вашем коде большой компонент GUI, потому что тогда вы также измеряете время, которое требуется пользователю, чтобы выбрать свой путь. к результатам.
Если вы хотите, чтобы по истечении некоторого периода вычислений у cuda были очень удобные функции cudaEvent *, которые можно размещать в различных частях кода & mdash; см. Руководство по рекомендациям CUDA , с. 2.1.2, Использование таймеров CUDA GPU & mdash; это вы можете поместить до и после важных битов кода и распечатать результаты.