Re: [SciPy-dev] [SciPy-user] Benchmark data

Robert Kern wrote:
When we start to seriously look at this, we should consider using liboil to implement these optimizations.
Hey, great find, that looks just like the kind of thing we'll want at some point. One way this could be done is just like the dotblas extension module so that if liboil is found on your system, an extension module is loaded that replaces the respective inner-loops of the affected functions. Alternatively, at compile time, the right functions could be inserted in the ufunc function table to begin with... -Travis

Travis Oliphant wrote:
Robert Kern wrote:
When we start to seriously look at this, we should consider using liboil to implement these optimizations.
Hey, great find, that looks just like the kind of thing we'll want at some point.
One way this could be done is just like the dotblas extension module so that if liboil is found on your system, an extension module is loaded that replaces the respective inner-loops of the affected functions.
Alternatively, at compile time, the right functions could be inserted in the ufunc function table to begin with...
liboil does this already. We would simply use the appropriate API function, say oil_conv_f64_u32(). In import_array(), we would call oil_init() which will select the appropriate implementations and make the function pointers point to them. Sometimes, some of those choices will be made at compile time, e.g. assembly implementations for the wrong architecure won't be compiled; others will be made at initialization. -- Robert Kern robert.kern@gmail.com "In the fields of hell where the grass grows high Are the graves of dreams allowed to die." -- Richard Harter

Robert Kern wrote:
Travis Oliphant wrote:
Robert Kern wrote:
When we start to seriously look at this, we should consider using liboil to implement these optimizations.
Hey, great find, that looks just like the kind of thing we'll want at some point.
One way this could be done is just like the dotblas extension module so that if liboil is found on your system, an extension module is loaded that replaces the respective inner-loops of the affected functions.
Alternatively, at compile time, the right functions could be inserted in the ufunc function table to begin with...
liboil does this already. We would simply use the appropriate API function, say oil_conv_f64_u32(). In import_array(), we would call oil_init() which will select the appropriate implementations and make the function pointers point to them. Sometimes, some of those choices will be made at compile time, e.g. assembly implementations for the wrong architecure won't be compiled; others will be made at initialization.
Right, I'm just wondering aloud if we would require liboil, bundle it in, or selectively use it at compile time. It seems like a nice project, regardless. -Travis
participants (2)
-
Robert Kern
-
Travis Oliphant