diff --git a/oss-internship-2020/pffft/test_pffft_sandboxed.cc b/oss-internship-2020/pffft/test_pffft_sandboxed.cc index dd6dc0b..d50dff3 100644 --- a/oss-internship-2020/pffft/test_pffft_sandboxed.cc +++ b/oss-internship-2020/pffft/test_pffft_sandboxed.cc @@ -1,14 +1,13 @@ -#include "fftpack.h" - +#include #include #include #include -#include -#include #include -#include #include +#include +#include +#include "fftpack.h" #include "pffft_sapi.sapi.h" #include "sandboxed_api/util/flag.h" #include "sandboxed_api/vars.h" @@ -17,9 +16,10 @@ ABSL_DECLARE_FLAG(string, sandbox2_danger_danger_permit_all); ABSL_DECLARE_FLAG(string, sandbox2_danger_danger_permit_all_and_log); class pffftSapiSandbox : public pffftSandbox { - public: - std::unique_ptr ModifyPolicy(sandbox2::PolicyBuilder*) override { - return sandbox2::PolicyBuilder() + public: + std::unique_ptr ModifyPolicy( + sandbox2::PolicyBuilder*) override { + return sandbox2::PolicyBuilder() .AllowStaticStartup() .AllowOpen() .AllowRead() @@ -27,47 +27,51 @@ class pffftSapiSandbox : public pffftSandbox { .AllowSystemMalloc() .AllowExit() .AllowSyscalls({ - __NR_futex, - __NR_close, - __NR_getrusage, + __NR_futex, + __NR_close, + __NR_getrusage, }) .DisableNamespaces() .BuildOrDie(); - } + } }; -double frand() { - return rand()/(double)RAND_MAX; -} +double frand() { return rand() / (double)RAND_MAX; } -double uclock_sec(void) { - return (double)clock()/(double)CLOCKS_PER_SEC; -} +double uclock_sec(void) { return (double)clock() / (double)CLOCKS_PER_SEC; } int array_output_format = 0; -void show_output(const char *name, int N, int cplx, float flops, float t0, float t1, int max_iter) { - float mflops = flops/1e6/(t1 - t0 + 1e-16); +void show_output(const char* name, int N, int cplx, float flops, float t0, + float t1, int max_iter) { + float mflops = flops / 1e6 / (t1 - t0 + 1e-16); if (array_output_format) { if (flops != -1) { printf("|%9.0f ", mflops); - } else printf("| n/a "); + } else + printf("| n/a "); } else { if (flops != -1) { - printf("N=%5d, %s %16s : %6.0f MFlops [t=%6.0f ns, %d runs]\n", N, (cplx?"CPLX":"REAL"), name, mflops, (t1-t0)/2/max_iter * 1e9, max_iter); + printf("N=%5d, %s %16s : %6.0f MFlops [t=%6.0f ns, %d runs]\n", N, + (cplx ? "CPLX" : "REAL"), name, mflops, + (t1 - t0) / 2 / max_iter * 1e9, max_iter); } } fflush(stdout); } -/* +/* For debug: - SAPI_VLOG_LEVEL=1 ./pffft_sandboxed --v=100 --sandbox2_danger_danger_permit_all_and_log my_aux_file + SAPI_VLOG_LEVEL=1 ./pffft_sandboxed --v=100 + --sandbox2_danger_danger_permit_all_and_log my_aux_file */ int main(int argc, char* argv[]) { gflags::ParseCommandLineFlags(&argc, &argv, true); - int Nvalues[] = { 64, 96, 128, 160, 192, 256, 384, 5*96, 512, 5*128, 3*256, 800, 1024, 2048, 2400, 4096, 8192, 9*1024, 16384, 32768, 256*1024, 1024*1024, -1 }; + int Nvalues[] = {64, 96, 128, 160, 192, 256, + 384, 5 * 96, 512, 5 * 128, 3 * 256, 800, + 1024, 2048, 2400, 4096, 8192, 9 * 1024, + 16384, 32768, 256 * 1024, 1024 * 1024, -1}; int i; printf("initializing sandbox...\n"); @@ -76,14 +80,14 @@ int main(int argc, char* argv[]) { sandbox.Init().IgnoreError(); pffftApi api(&sandbox); - + int N, cplx; cplx = 0; for (i = 0; i < 5; i++) { N = Nvalues[i]; - + int Nfloat = N * (cplx ? 2 : 1); int Nbytes = Nfloat * sizeof(float); int pass; @@ -108,27 +112,28 @@ int main(int argc, char* argv[]) { double t0, t1, flops; - int max_iter = 5120000/N*4; - #ifdef __arm__ - max_iter /= 4; - #endif + int max_iter = 5120000 / N * 4; +#ifdef __arm__ + max_iter /= 4; +#endif int iter; for (k = 0; k < Nfloat; ++k) { - X[k] = 0; + X[k] = 0; } // FFTPack benchmark { - int max_iter_ = max_iter/4; // SIMD_SZ == 4 (returning value of pffft_simd_size()) + int max_iter_ = + max_iter / 4; // SIMD_SZ == 4 (returning value of pffft_simd_size()) if (max_iter_ == 0) max_iter_ = 1; if (cplx) { api.cffti(N, wrk_.PtrBoth()).IgnoreError(); } else { api.rffti(N, wrk_.PtrBoth()).IgnoreError(); } - t0 = uclock_sec(); - + t0 = uclock_sec(); + for (iter = 0; iter < max_iter_; ++iter) { if (cplx) { api.cfftf(N, X_.PtrBoth(), wrk_.PtrBoth()).IgnoreError(); @@ -139,10 +144,9 @@ int main(int argc, char* argv[]) { } } t1 = uclock_sec(); - - flops = (max_iter_ * 2) * ((cplx ? 5 : 2.5) * N * log((double)N) / M_LN2); - show_output("FFTPack", N, cplx, flops, t0, t1, max_iter_); - + + flops = (max_iter_ * 2) * ((cplx ? 5 : 2.5) * N * log((double)N) / M_LN2); + show_output("FFTPack", N, cplx, flops, t0, t1, max_iter_); } }