[Haskell-cafe] blas bindings, why are they so much slower the C?
Bryan O'Sullivan
bos at serpentine.com
Wed Jun 18 11:11:14 EDT 2008
On Tue, Jun 17, 2008 at 9:00 PM, Anatoly Yakovenko
<aeyakovenko at gmail.com> wrote:
> here is the C:
>
> #include <cblas.h>
> #include <stdlib.h>
>
> int main() {
> int size = 1024;
> int ii = 0;
> double* v1 = malloc(sizeof(double) * (size));
> double* v2 = malloc(sizeof(double) * (size));
> for(ii = 0; ii < size*size; ++ii) {
> double _dd = cblas_ddot(0, v1, size, v2, size);
> }
> free(v1);
> free(v2);
> }
Your C compiler sees that you're not using the result of cblas_ddot,
so it doesn't even bother to call it. That loop never gets run. All
your program does at runtime is call malloc and free twice, which is
very fast :-)
More information about the Haskell-Cafe
mailing list