[Liboil] exp, log

James Bergstra james.bergstra at umontreal.ca
Wed Mar 15 14:14:05 PST 2006

The problem which motivates this email is that if you write a loop like

for (int i = 0; i < 256; ++i) y[i] = exp(x[i]);

and compile it with gcc, you get code that runs much slower than if you make a
call to amd's libacml_mv

vrda_exp(256, x, y);

My question for the list is whether you think liboil might tackle the problem of
vectorized functions like exp, log, cos, sin, sincos, cabs, etc... or whether
these should be left for a compiler?   I believe that the answer should be
"both"... first liboil, and the compiler :)

The other aspect of implementing vectorized functions like these is demonstrated
by the fact that amd's library has routines like
that compute 1, 2, and 4 exp(x) values per call.  I don't know of any open
implementation of such functions.

Any thoughts?

james bergstra

More information about the Liboil mailing list