void init() { //摄像头 camera.open(0); if(!camera.isOpened()) { std::cout << "Can not find camera!" << std::endl; exit(-1); } camera.set(cv::CAP_PROP_FRAME_WIDTH,160); camera.set(cv::CAP_PROP_FRAME_HEIGHT,120); /* double width = camera.get(cv::CAP_PROP_FRAME_WIDTH); double height = camera.get(cv::CAP_PROP_FRAME_HEIGHT); std::cout << "width:" << width << "\t"; std::cout << "height:" << height << "\t" << std::endl;*/ face_cascade_name = "/usr/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml"; if(!face_cascade.load(face_cascade_name)) { std::cout << "can not find face_cascade_file!" << std::endl; exit(-1); } running = true; pthread_mutex_init(&mutexLock, NULL); pthread_create(&grabThread, NULL, grabFunc, NULL); //Setup edi robot mraa control lib spider_init(); signal(SIGINT, clear); signal(SIGTERM, clear); }
int main(int argc, char* argv[]){ SpiderConfig cfg; ExecutionStat stat; initActors(); DynStack pisdfStack("PisdfStack"); DynStack archiStack("ArchiStack"); #define SH_MEM 0x00500000 PlatformK2Arm platform(4, 8, SH_MEM, &archiStack, daq_fft_fcts, N_FCT_DAQ_FFT); Archi* archi = platform.getArchi(); cfg.memAllocType = MEMALLOC_SPECIAL_ACTOR; cfg.memAllocStart = (void*)0; cfg.memAllocSize = SH_MEM; cfg.schedulerType = SCHEDULER_LIST; cfg.srdagStack = {STACK_DYNAMIC, "SrdagStack", 0, 0}; cfg.transfoStack = {STACK_DYNAMIC, "TransfoStack", 0, 0}; spider_init(cfg); printf("Start\n"); try{ PiSDFGraph *topPisdf = init_daq_fft(archi, &pisdfStack); topPisdf->print("topPisdf.gv"); for(int i=0; i<2; i++){ Platform::get()->rstTime(); spider_launch(archi, topPisdf); spider_printGantt(archi, spider_getLastSRDAG(), "dac_fft_group_fixed.pgantt", "dac_fft_group_fixed.tex", &stat); spider_getLastSRDAG()->print("dac_fft_group.gv"); printf("EndTime = %ld ms\n", stat.globalEndTime/1000000); printf("Memory use = "); if(stat.memoryUsed < 1024) printf("\t%5.1f B", stat.memoryUsed/1.); else if(stat.memoryUsed < 1024*1024) printf("\t%5.1f KB", stat.memoryUsed/1024.); else if(stat.memoryUsed < 1024*1024*1024) printf("\t%5.1f MB", stat.memoryUsed/1024./1024.); else printf("\t%5.1f GB", stat.memoryUsed/1024./1024./1024.); printf("\n"); FILE* f = fopen("timings.csv", "w+"); fprintf(f, "Actors,c6678,CortexA15\n"); Time fftTime = 0; printf("Actors:\n"); for(int j=0; j<stat.nbActor; j++){ printf("\t%12s:", stat.actors[j]->getName()); fprintf(f, "%s", stat.actors[j]->getName()); for(int k=0; k<archi->getNPETypes(); k++){ if(stat.actorIterations[j][k] > 0){ printf("\t(%d): %8ld (x%ld)", k, stat.actorTimes[j][k]/stat.actorIterations[j][k], stat.actorIterations[j][k]); fprintf(f, ",%ld", stat.actorTimes[j][k]/stat.actorIterations[j][k]); }else{ printf("\t(%d): 0 (x0)", k); fprintf(f, ",%ld", (Time)-1); } } if(strcmp(stat.actors[j]->getName(), "T_1") == 0){ fftTime -= stat.actorFisrt[j]; } if(strcmp(stat.actors[j]->getName(), "T_6") == 0){ fftTime += stat.actorLast[j]; } printf("\n"); fprintf(f, "\n"); } printf("fftTime = %ld us\n", fftTime/1000); } free_daq_fft(topPisdf, &pisdfStack); }catch(const char* s){ printf("Exception : %s\n", s); } printf("finished\n"); spider_free(); return 0; }
int main(int argc, char* argv[]){ SpiderConfig cfg; ExecutionStat stat; initActors(); DynStack pisdfStack("PisdfStack"); DynStack archiStack("ArchiStack"); //#define SH_MEM 0x00500000 #define SH_MEM 0x10000000 PlatformLinux platform(1, SH_MEM, &archiStack, top_fft_fcts, N_FCT_TOP_FFT); Archi* archi = platform.getArchi(); cfg.memAllocType = MEMALLOC_SPECIAL_ACTOR; cfg.memAllocStart = (void*)0; cfg.memAllocSize = SH_MEM; cfg.schedulerType = SCHEDULER_LIST; cfg.srdagStack = {STACK_DYNAMIC, "SrdagStack", 0, 0}; cfg.transfoStack = {STACK_DYNAMIC, "TransfoStack", 0, 0}; spider_init(cfg); printf("Start\n"); // try{ for(int i=1; i<=3; i++){ // printf("NStep = %d\n", i); char ganttPath[30]; sprintf(ganttPath, "radixFFT_%d.pgantt", i); char srdagPath[30]; sprintf(srdagPath, "radixFFT_%d.gv", i); pisdfStack.freeAll(); PiSDFGraph *topPisdf = init_top_fft(archi, &pisdfStack); topPisdf->print("topPisdf.gv"); Platform::get()->rstTime(); spider_launch(archi, topPisdf); // spider_printGantt(archi, spider_getLastSRDAG(), ganttPath, "latex.tex", &stat); spider_getLastSRDAG()->print(srdagPath); printf("EndTime = %d ms\n", stat.globalEndTime/1000000); printf("Memory use = "); if(stat.memoryUsed < 1024) printf("\t%5.1f B", stat.memoryUsed/1.); else if(stat.memoryUsed < 1024*1024) printf("\t%5.1f KB", stat.memoryUsed/1024.); else if(stat.memoryUsed < 1024*1024*1024) printf("\t%5.1f MB", stat.memoryUsed/1024./1024.); else printf("\t%5.1f GB", stat.memoryUsed/1024./1024./1024.); printf("\n"); // printf("Actors:\n"); // for(int j=0; j<stat.nbActor; j++){ // printf("\t%12s:", stat.actors[j]->getName()); // for(int k=0; k<archi->getNPETypes(); k++) // printf("\t%d (x%d)", // stat.actorTimes[j][k]/stat.actorIterations[j][k], // stat.actorIterations[j][k]); // printf("\n"); // } free_top_fft(topPisdf, &pisdfStack); } // }catch(const char* s){ // printf("Exception : %s\n", s); // } printf("finished\n"); spider_free(); return 0; }
int main(int argc, char* argv[]) { SpiderConfig cfg; ExecutionStat stat; // initActors(); StaticStack pisdfStack("PisdfStack", pisdfStackMem, PISDF_SIZE); StaticStack archiStack("ArchiStack", archiStackMem, ARCHI_SIZE); #define SH_MEM 0x04000000 PlatformK2Arm platform(1, 0, USE_DDR, SH_MEM, &archiStack, stereo_fcts, N_FCT_STEREO); Archi* archi = platform.getArchi(); cfg.memAllocType = MEMALLOC_SPECIAL_ACTOR; cfg.memAllocStart = (void*)0; cfg.memAllocSize = SH_MEM; cfg.schedulerType = SCHEDULER_LIST; cfg.srdagStack.type = STACK_STATIC; cfg.srdagStack.name = "SrdagStack"; cfg.srdagStack.size = SRDAG_SIZE; cfg.srdagStack.start = srdagStack; cfg.transfoStack.type = STACK_STATIC; cfg.transfoStack.name = "TransfoStack"; cfg.transfoStack.size = TRANSFO_SIZE; cfg.transfoStack.start = transfoStack; spider_init(cfg); printf("Start\n"); try { int i=1; // for(int i=1; i<=1; i++){ printf("NStep = %d\n", i); char ganttPath[30]; sprintf(ganttPath, "stereo.pgantt"); char srdagPath[30]; sprintf(srdagPath, "stereo.gv"); pisdfStack.freeAll(); PiSDFGraph *topPisdf = init_stereo(archi, &pisdfStack); topPisdf->print("topPisdf.gv"); Platform::get()->rstTime(); spider_launch(archi, topPisdf); // spider_printGantt(archi, spider_getLastSRDAG(), ganttPath, "latex.tex", &stat); spider_getLastSRDAG()->print(srdagPath); printf("EndTime = %d ms\n", stat.globalEndTime/1000000); printf("Memory use = "); if(stat.memoryUsed < 1024) printf("\t%5.1f B", stat.memoryUsed/1.); else if(stat.memoryUsed < 1024*1024) printf("\t%5.1f KB", stat.memoryUsed/1024.); else if(stat.memoryUsed < 1024*1024*1024) printf("\t%5.1f MB", stat.memoryUsed/1024./1024.); else printf("\t%5.1f GB", stat.memoryUsed/1024./1024./1024.); printf("\n"); printf("Actors:\n"); for(int j=0; j<stat.nbActor; j++) { printf("\t%12s:", stat.actors[j]->getName()); for(int k=0; k<archi->getNPETypes(); k++) printf("\t%d (x%d)", stat.actorTimes[j][k]/stat.actorIterations[j][k], stat.actorIterations[j][k]); printf("\n"); } free_stereo(topPisdf, &pisdfStack); // } } catch(const char* s) { printf("Exception : %s\n", s); } printf("finished\n"); spider_free(); return 0; }
int main(int argc, char* argv[]) { SpiderConfig cfg; ExecutionStat stat; initActors(); DynStack pisdfStack("PisdfStack"); DynStack archiStack("ArchiStack"); #define SH_MEM 0x00500000 PlatformLinux platform(4, SH_MEM, &archiStack, daq_fft_fcts, N_FCT_DAQ_FFT); Archi* archi = platform.getArchi(); cfg.memAllocType = MEMALLOC_SPECIAL_ACTOR; cfg.memAllocStart = (void*)0; cfg.memAllocSize = SH_MEM; cfg.schedulerType = SCHEDULER_LIST; cfg.srdagStack = {STACK_DYNAMIC, "SrdagStack", 0, 0}; cfg.transfoStack = {STACK_DYNAMIC, "TransfoStack", 0, 0}; spider_init(cfg); printf("Start\n"); // try{ PiSDFGraph *topPisdf = init_daq_fft(archi, &pisdfStack); topPisdf->print("topPisdf.gv"); Platform::get()->rstTime(); spider_launch(archi, topPisdf); spider_printGantt(archi, spider_getLastSRDAG(), "daq_fft.pgantt", "latex.tex", &stat); spider_getLastSRDAG()->print("daq_fft.gv"); printf("EndTime = %d ms\n", stat.globalEndTime/1000000); printf("Memory use = "); if(stat.memoryUsed < 1024) printf("\t%5.1f B", stat.memoryUsed/1.); else if(stat.memoryUsed < 1024*1024) printf("\t%5.1f KB", stat.memoryUsed/1024.); else if(stat.memoryUsed < 1024*1024*1024) printf("\t%5.1f MB", stat.memoryUsed/1024./1024.); else printf("\t%5.1f GB", stat.memoryUsed/1024./1024./1024.); printf("\n"); FILE* f = fopen("timings.csv", "w+"); fprintf(f, "Actors,x86\n"); printf("Actors:\n"); for(int j=0; j<stat.nbActor; j++) { printf("\t%12s:", stat.actors[j]->getName()); fprintf(f, "%s", stat.actors[j]->getName()); for(int k=0; k<archi->getNPETypes(); k++) { printf("\t%d (x%d)", stat.actorTimes[j][k]/stat.actorIterations[j][k], stat.actorIterations[j][k]); fprintf(f, ",%d", stat.actorTimes[j][k]/stat.actorIterations[j][k]); } printf("\n"); fprintf(f, "\n"); } free_daq_fft(topPisdf, &pisdfStack); // }catch(const char* s){ // printf("Exception : %s\n", s); // } printf("finished\n"); spider_free(); return 0; }
int main(int argc, char* argv[]){ SpiderConfig cfg; ExecutionStat stat; initActors(); DynStack pisdfStack("PisdfStack"); DynStack archiStack("ArchiStack"); #define SH_MEM 0x00500000 PlatformK2Arm platform(2, 4, SH_MEM, &archiStack, radix2_fft_fcts, N_FCT_RADIX2_FFT); Archi* archi = platform.getArchi(); cfg.memAllocType = MEMALLOC_SPECIAL_ACTOR; cfg.memAllocStart = (void*)0; cfg.memAllocSize = SH_MEM; cfg.schedulerType = SCHEDULER_LIST; cfg.srdagStack.type = STACK_DYNAMIC; cfg.srdagStack.name = "SrdagStack"; cfg.srdagStack.size = 0; cfg.srdagStack.start = 0; cfg.transfoStack.type = STACK_DYNAMIC; cfg.transfoStack.name = "TransfoStack"; cfg.transfoStack.size = 0; cfg.transfoStack.start = 0; spider_init(cfg); printf("Start\n"); try{ pisdfStack.freeAll(); PiSDFGraph *topPisdf = init_Radix2_fft(archi, &pisdfStack); topPisdf->print("topPisdf.gv"); Platform::get()->rstTime(); spider_launch(archi, topPisdf); spider_printGantt(archi, spider_getLastSRDAG(), "radixFFT_2.pgantt", "latex.tex", &stat); spider_getLastSRDAG()->print("radixFFT_2.gv"); printf("EndTime = %ld us\n", stat.globalEndTime/1000); printf("Memory use = "); if(stat.memoryUsed < 1024) printf("\t%5.1f B", stat.memoryUsed/1.); else if(stat.memoryUsed < 1024*1024) printf("\t%5.1f KB", stat.memoryUsed/1024.); else if(stat.memoryUsed < 1024*1024*1024) printf("\t%5.1f MB", stat.memoryUsed/1024./1024.); else printf("\t%5.1f GB", stat.memoryUsed/1024./1024./1024.); printf("\n"); printf("Actors:\n"); for(int j=0; j<stat.nbActor; j++){ printf("\t%18s:", stat.actors[j]->getName()); for(int k=0; k<archi->getNPETypes(); k++) printf("\t%8ld (x%3ld)", stat.actorTimes[j][k]/stat.actorIterations[j][k], stat.actorIterations[j][k]); printf("\n"); } free_Radix2_fft(topPisdf, &pisdfStack); }catch(const char* s){ printf("Exception : %s\n", s); } printf("finished\n"); spider_free(); return 0; }