diff --git a/llvm/test/VISC/parboil/benchmarks/pipeline/src/visc_parallel/main.cc b/llvm/test/VISC/parboil/benchmarks/pipeline/src/visc_parallel/main.cc old mode 100755 new mode 100644 index 023f62df871fc864d9b1959797ec1d58f6dbe576..12b3d42a66c369e97fbd3a08a0d179334f245153 --- a/llvm/test/VISC/parboil/benchmarks/pipeline/src/visc_parallel/main.cc +++ b/llvm/test/VISC/parboil/benchmarks/pipeline/src/visc_parallel/main.cc @@ -24,7 +24,7 @@ #include <visc.h> -#define NUM_RUNS 5 +#define NUM_RUNS 100 #define DEPTH 3 #define HEIGHT 640 #define WIDTH 480 @@ -875,6 +875,12 @@ int main (int argc, char *argv[]) { int NUM_FRAMES = cap.get(CV_CAP_PROP_FRAME_COUNT); //NUM_FRAMES = 5; std::cout << "Number of frames = " << NUM_FRAMES << "\n"; + + // Used to store time after each frame computation is completed + //timeval *timeStamps = (timeval *)malloc(NUM_RUNS*NUM_FRAMES*sizeof(timeval)); + //struct timeval tv_start; + //unsigned long cnt = 0; // Counter, for the video frames + namedWindow(input_window, CV_WINDOW_AUTOSIZE); namedWindow(output_window, CV_WINDOW_AUTOSIZE); moveWindow(input_window, POSX_IN, POSY_IN); @@ -942,12 +948,12 @@ int main (int argc, char *argv[]) { //pb_SwitchToTimer( &timers, pb_TimerID_COMPUTE ); //showInOut(src, E); - //Mat in, out; - //resize(src, in, Size(HEIGHT, WIDTH)); - //resize(E, out, Size(HEIGHT, WIDTH)); - //imshow(input_window, in); - //imshow(output_window, out); - //waitKey(0); + Mat in, out; + resize(src, in, Size(HEIGHT, WIDTH)); + resize(E, out, Size(HEIGHT, WIDTH)); + imshow(input_window, in); + imshow(output_window, out); + waitKey(0); //NUM_FRAMES = 20; pb_SwitchToTimer( &timers, visc_TimerID_COMPUTATION ); @@ -972,6 +978,10 @@ int main (int argc, char *argv[]) { //imshow(input_window, src); //imshow(output_window, E); //waitKey(0); + + // Get the time just before computation starts + //gettimeofday(&tv_start,NULL); + for(unsigned j=0; j<NUM_RUNS; j++) { std::cout << "Run: " << j << "\n"; void* DFG = __visc__launch(1, edgeDetection, (void*)args); @@ -1023,14 +1033,16 @@ int main (int argc, char *argv[]) { //std::cout << "G.data = " << (float*)G.data << "\n"; //std::cout << "E.data = " << (float*)E.data << "\n"; //std::cout << "Max G = " << *maxG << "\n"; - - //Mat in, out; - //resize(src, in, Size(HEIGHT, WIDTH)); + + //gettimeofday(&timeStamps[cnt], NULL); + //cnt++; + Mat in, out; + resize(src, in, Size(HEIGHT, WIDTH)); //std::cout << "Show E\n"; - //resize(E, out, Size(HEIGHT, WIDTH)); - //imshow(output_window, out); - //imshow(input_window, in); - //waitKey(1); + resize(E, out, Size(HEIGHT, WIDTH)); + imshow(output_window, out); + imshow(input_window, in); + waitKey(1); //waitKey(0); //std::cout << "Show Is\n"; //resize(Is, out, Size(HEIGHT, WIDTH)); @@ -1080,6 +1092,20 @@ int main (int argc, char *argv[]) { pb_PrintTimerSet(&timers); + + //const char *fn = "timestamps.txt"; + //std::ofstream outfile; + //outfile.open(fn); + //if (!outfile.is_open()) { + //std::cout << "Failed to open " << fn << " for writing\n"; + //} + //for (unsigned long i = 0; i < cnt; i++) { + //double elapsed = (timeStamps[i].tv_sec - tv_start.tv_sec) + + //((timeStamps[i].tv_usec - tv_start.tv_usec)/1000000.0); + //outfile << elapsed << "\n"; + //} + //free(timeStamps); + //outfile.close(); __visc__cleanup(); //if (params->outFile) {