Fast convolution (slow!)
Gaetano Mendola
gmendola at mbigroup.it
Mon Aug 4 08:00:42 UTC 2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi all,
I'm evaluating VSIPL++ for an application heavily based on convolutions.
I tried the following code to estimate some execution time:
int
main(int argc, char **argv)
{
vsip::vsipl init(argc, argv);
typedef vsip::complex<float> T;
const unsigned long long N = 10000;
vsip::Vector<T> inputs(N);
vsip::Vector<T> filters(N);
vsip::Vector<T> outputs(N);
typedef vsip::Fft<vsip::const_Vector, T, T, vsip::fft_fwd, vsip::by_reference> fwd_fft_type;
typedef vsip::Fft<vsip::const_Vector, T, T, vsip::fft_inv, vsip::by_reference> inv_fft_type;
fwd_fft_type fwd_fft(N, 1.0f);
inv_fft_type inv_fft(N, 1.0f/N);
fwd_fft(inputs, outputs);
outputs *= filters;
inv_fft(outputs);
}
and I obtained the following data:
fwd_fft_type fwd_fft(N, 1.0f); -> 19.041 sec [19041 ms]
inv_fft_type inv_fft(N, 1.0f/N); -> 19.009 sec [19009 ms]
Convolution -> 000 ms
now, I can accept a 40seconds as start up time for my final application but I have to raise that N to around
1E6 (one of the two vectors containse 1E6 samples, the second one contains 3k samples) so it seems not doable,
am I doing something wrong? Atm I'm doing some tests on a Xeon processor in production should be CellBe.
Regards
Gaetano Mendola
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFIlrcq7UpzwH2SGd4RArvJAKDmNIYTmOAcEL0DLhiaH+IV2xitzwCfUO31
mI9nc9MfjWVosqJJmqi06D0=
=TdnR
-----END PGP SIGNATURE-----
More information about the vsipl++
mailing list