Странные результаты при измерении производительности C++ AMP

Я оборачиваю вызов C++ AMP с помощью этот таймер с кодом, показанным ниже. К сожалению, согласно таймеру, мой вызов C++ AMP занимает около 2 секунд — намного больше, чем реально. Может ли кто-нибудь помочь мне понять, что не так?

double sum = 0.0;
for (int t = 0; t < 20; ++t)
{
  Timer gpuTimer;
  gpuTimer.Start();
  auto gh = gpu_histogram(target, size);
  gpuTimer.Stop();
  sum += gpuTimer.Elapsed();
}

person Dmitri Nesteruk    schedule 24.08.2012    source источник


Ответы (2)


Оказывается, это было простое недоразумение — я предположил, что Timer измеряет время в секундах, тогда как на самом деле он использует миллисекунды. :) Теперь данные имеют смысл, и... C++ AMP просто великолепен!

person Dmitri Nesteruk    schedule 25.08.2012

Извините, вы не предоставили достаточно кода. Я не могу сказать, что делает gpu_histogram и используете ли вы передовой опыт для Измерение производительности вычислений C++ AMP, или если вы корректируете результаты суммы для 20 итераций выполнения вычислений и т. д. Попробуйте опубликовать полную репродукцию с ожидаемыми и фактические результаты — кстати, команда отслеживает вопросы на нашем форуме msdn.

person Daniel Moth    schedule 24.08.2012