我正在使用cuda :: convolution :: convolve计算高斯卷积,我想测量fft和ifft的时间。但是我不知道如何测量。
我在GitHub上找到了源代码。我不知道如何测量时间。
.../build/ios/Release-Staging-iphoneos/your.app.dSYM
答案 0 :(得分:0)
我曾经不得不像这样进行测量和测量:
#include <chrono>
auto begin = std::chrono::high_resolution_clock::now();
cufftSafeCall(cufftExecR2C(planR2C, image_block.ptr<cufftReal>(),
image_spect.ptr<cufftComplex>()));
//or the call you want to measure
auto elapsed = chrono::high_resolution_clock::now() - begin;
然后您可以使用以下方法将其转换为例如微秒:
time = chrono::duration_cast<chrono::microseconds>(elapsed).count();
如果该调用位于for循环内,并且您希望获得所有调用的时间,则可以声明一个数组,以在每次循环中保存time
。