diff --git a/example/main.cpp b/example/main.cpp index 09ceabe91abb3755fb145cc9b3e3c471c5072178..e3692a44fe8ea0cec4a89bf910096ff4be752bf1 100644 --- a/example/main.cpp +++ b/example/main.cpp @@ -376,7 +376,7 @@ void convertInterleavedToSplit(clFFT_SplitComplex *result_split, clFFT_Complex * } int runTest(clFFT_Dim3 n, int batchSize, clFFT_Direction dir, clFFT_Dimension dim, - clFFT_DataFormat dataFormat, int numIter, clFFT_TestType testType) + clFFT_DataFormat dataFormat, int numIter, clFFT_TestType testType, int debugEnabled) { cl_int err = CL_SUCCESS; int iter; @@ -614,25 +614,27 @@ int runTest(clFFT_Dim3 n, int batchSize, clFFT_Direction dir, clFFT_Dimension di free(result_split.real); free(result_split.imag); } -#else - log_info("Output power spectrum for manual validation (normalized):\n"); - if(dataFormat != clFFT_SplitComplexFormat) { - clFFT_SplitComplex result_split; - result_split.real = (float *) malloc(length*sizeof(float)); - result_split.imag = (float *) malloc(length*sizeof(float)); - convertInterleavedToSplit(&result_split, data_cl, length); - for(int i = 0; i < length; ++i) { - printf("%f\n", normFactor * (result_split.real[i]*result_split.real[i] + result_split.imag[i]*result_split.imag[i])); +#endif + + if(debugEnabled) { + log_info("Output power spectrum for manual validation (normalized):\n"); + if(dataFormat != clFFT_SplitComplexFormat) { + clFFT_SplitComplex result_split; + result_split.real = (float *) malloc(length*sizeof(float)); + result_split.imag = (float *) malloc(length*sizeof(float)); + convertInterleavedToSplit(&result_split, data_cl, length); + for(int i = 0; i < length; ++i) { + printf("%f\n", normFactor * (result_split.real[i]*result_split.real[i] + result_split.imag[i]*result_split.imag[i])); + } + free(result_split.real); + free(result_split.imag); } - free(result_split.real); - free(result_split.imag); - } - else { - for(int i = 0; i < length; ++i) { - printf("%f\n", normFactor * (data_cl_split.real[i]*data_cl_split.real[i] + data_cl_split.imag[i]*data_cl_split.imag[i])); + else { + for(int i = 0; i < length; ++i) { + printf("%f\n", normFactor * (data_cl_split.real[i]*data_cl_split.real[i] + data_cl_split.imag[i]*data_cl_split.imag[i])); + } } } -#endif cleanup: clFFT_DestroyPlan(plan); @@ -740,6 +742,8 @@ int main (int argc, char * const argv[]) { clFFT_TestType testType = clFFT_OUT_OF_PLACE; cl_device_id device_ids[MAX_DEVICES]; + int debugEnabled = 0; + FILE *paramFile; cl_int err, status; @@ -928,6 +932,10 @@ int main (int argc, char * const argv[]) { return -1; } + if(4 == argc && 1 == !strcmp(argv[3], "debug")) { + debugEnabled = 1; + } + if(argc >= 2) { // arguments are supplied in a file with arguments for a single run are all on the same line paramFile = fopen(argv[1], "r"); if(!paramFile) { @@ -992,7 +1000,7 @@ int main (int argc, char * const argv[]) { continue; } - err = runTest(n, batchSize, dir, dim, dataFormat, numIter, testType); + err = runTest(n, batchSize, dir, dim, dataFormat, numIter, testType, debugEnabled); if (err) total_errors++; }