void run(std::string benchmark, int size) { if (benchmark == "copy") { bench_copy(size); } else if (benchmark == "scal") { bench_scal(size); } else if (benchmark == "axpy") { bench_axpy(size); } else if (benchmark == "dot") { bench_dot(size); } else if (benchmark == "asum") { bench_asum(size); } else if (benchmark == "gemv_notrans") { bench_gemv_notrans(size); } else if (benchmark == "gemv_trans") { bench_gemv_trans(size); } else if (benchmark == "gemm_notrans") { bench_gemm_notrans(size); } else if (benchmark == "gemm_transA") { bench_gemm_transA(size); } else if (benchmark == "gemm_transB") { bench_gemm_transB(size); } else if (benchmark == "gemm_transAB") { bench_gemm_transAB(size); } }
void bench_append(Bench_Step *to, Bench_Step *from) { while (to->x != -1) to++; bench_copy(to, from); }
int main(int argc, char** argv) { char* accel_name = NULL; int accel; int c; while((c = getopt(argc, argv, "A:")) != -1) { switch(c) { case 'A': accel_name = optarg; break; default: break; } } if (accel_name == NULL) accel = EPX_SIMD_AUTO; // select automatically else if (strcmp(accel_name, "auto")==0) accel = EPX_SIMD_AUTO; // select automatically else if (strcmp(accel_name, "emu")==0) accel = EPX_SIMD_EMU; else if (strcmp(accel_name, "mmx")==0) accel = EPX_SIMD_MMX; else if (strcmp(accel_name, "sse2")==0) accel = EPX_SIMD_SSE2; else if (strcmp(accel_name, "altivec")==0) accel = EPX_SIMD_ALTIVEC; else if (strcmp(accel_name, "neon")==0) accel = EPX_SIMD_NEON; else accel = EPX_SIMD_AUTO; // select automatically epx_init(accel); bench_copy(10); bench_plot(10, EPX_FORMAT_ARGB, EPX_FORMAT_BGRA); bench_plot1(10, unpack_ARGB, pack_ARGB); bench_fill(10); bench_blend(10); bench_blend_fill(10); bench_line(10); exit(0); }