ArrayFire: benchmarks/fft.cpp (original) (raw)

#include <math.h>

#include <stdio.h>

#include

using namespace af;

static array A;

static void fn() {

array B = fft2(A);

B.eval();

}

int main(int argc, char** argv) {

try {

int device = argc > 1 ? atoi(argv[1]) : 0;

setDevice(device);

info();

printf("Benchmark N-by-N 2D fft\n");

for (int M = 7; M <= 12; M++) {

int N = (1 << M);

printf("%4d x %4d: ", N, N);

A = randu(N, N);

double time = timeit(fn);

double gflops = 10.0 * N * N * M / (time * 1e9);

printf(" %4.0f Gflops\n", gflops);

fflush(stdout);

}

return 0;

}

A multi dimensional data container.

void eval() const

Evaluate any JIT expressions to generate data for the array.

An ArrayFire exception class.

virtual const char * what() const

Returns an error message for the exception in a string format.