[IPOL discuss] use of Eigen for PCA/SVD computation in demo blm_color_dimensional_filtering

Nicolas Limare nicolas.limare at cmla.ens-cachan.fr
Mon May 23 18:06:28 CEST 2011


> However, I'm not sure whether using cpu-optimized code for dot
> products would make a difference in running time in that case.

CPU optimizations will include vector instructions: for example
the SSE instruction "mulss" will multiply 4 floats with 4 other floats
in a single clock cycle, and the recent CPUs (SSE4 generation) have a
dot product instruction. The CPU cache size and pipeline management
can also be improved in vendor implementations.

But of course it is only useful if these operations represent a large
proportion of the whole computation time. And overall, this is not a
priority, we prefer a simple readable code.

> a lot of further simplification can be done (e.g., putting all the
> files into a single "svd" subdirectory, or even copying all the code
> into a single C file, where only the "gsl_linalg_SV_decomp" function
> is non-static).

I think this (single C file with only one non-static function) is
exactly what other people needing a SVD implement will use. That's the
kind of tools we can collect and propose in our "IPOL collection of
development tools" (with doc and examples).

PS: If you provide this code, I can try to add a simple preprocessor
switch to use the local blas library.

-- 
Nicolas LIMARE - CMLA - ENS Cachan    http://www.cmla.ens-cachan.fr/~limare/
IPOL - image processing on line                          http://www.ipol.im/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://tools.ipol.im/mailman/archive/discuss/attachments/20110523/4957dbcd/attachment.pgp>


More information about the discuss mailing list