[PD-dev] some more SIMD

Thomas Grill t.grill at gmx.net
Tue Dec 23 03:38:06 CET 2003


Hi all,
on the hunt for more CPU efficiency i changed the SIMD functionality of the
devel_0_37 branch completely.
Now there's a modular interface for SIMD implementations for different
platforms... the main file is m_simd.h where the choice is made which
implementation to choose. Currently there's only compile-time selection of
platform and compiler, no actual detection of SIMD features like SSE or
Altivec. For the different implementations the files m_simd_sse_vc.{h,c} for
Intel/Visualc, m_simd_sse_gcc.{h,c} for Intel/gcc and m_simd_ve_gcc.{h,c}
for Altivec/gcc have been added. Only the sse/vc implementation is almost
complete (with the exception of [/~] ), the sse/gcc ports should be easy to
add on that basis.

Interestingly, when updating my cvs directories on linux and OSX the new
files weren't added.... i had to do a checkout for that. I hope it works for
you.
The other thing is that i'm not sure if the prefix m_* for the new file is
according to the pd file naming standard. Please correct it if not (or tell
me).

Furthermore there seems to be an inconsistency in the PD code for [/~]. For
the slow (non perf8-) implementation there's no check for division by 0,
whereas that is made for the unrolled version. It seems that such a check is
very difficult for SIMD code, that why that function is still lacking.

best greetings,
Thomas





More information about the Pd-dev mailing list