Tags: 200k, appears, application, arrays, detection, matlab, mmx, peak, programming, rate, realtime, second, simd, write
MMX/SIMD/etc. used in MATLAB
On Programmer » Matlab
4,231 words with 4 Comments; publish: Wed, 07 May 2008 19:42:00 GMT; (20078.13, « »)
I need to write an application that needs to do peak detection real
time.
These are large (200k) 1D arrays at a rate of around 10 a second.
It appears MATLAB has the exact libraries we need in the Wavelet and
Biological tool kit.
In the past we have used the Intel DSP library which takes advantage of
the current SIMD capabilities.
Does MATLAB use the Intel Libraries or have there own code that takes
adavantage of specialized architecture performance features?
http://matlab.itags.org/q_matlab_39886.html
All Comments
Leave a comment...
- 4 Comments

- "mswlogo" <geomills.matlab.itags.org.gmail.com> wrote in message
news:1151855498.600675.290360.matlab.itags.org.h44g2000cwa.googlegroups.com...
> I need to write an application that needs to do peak detection real
> time.
> These are large (200k) 1D arrays at a rate of around 10 a second.
> It appears MATLAB has the exact libraries we need in the Wavelet and
> Biological tool kit.
> In the past we have used the Intel DSP library which takes advantage of
> the current SIMD capabilities.
> Does MATLAB use the Intel Libraries or have there own code that takes
> adavantage of specialized architecture performance features?
If you want to use SSE instruction within Matlab itself forget about it.
Most of the functions are written as a general code and probably toolboxes
don't use SIMDs. You have a chance the SSE to be used if you have some
linear algebra of FFT functions and/or substitute Matlab's BLAS by built in
Intel MKL BLAS (search MKL in Matlab help) or your toolbox functions use
some linear algebra. You can also write your own code and use it through
mex/dll interfacing.
Best wishes,
--
uC
#1; Wed, 07 May 2008 19:43:00 GMT

- "uC" <uC.matlab.itags.org.blabla.bla> writes:
> "mswlogo" <geomills.matlab.itags.org.gmail.com> wrote in message
> news:1151855498.600675.290360.matlab.itags.org.h44g2000cwa.googlegroups.com...
> If you want to use SSE instruction within Matlab itself forget about it.
> Most of the functions are written as a general code and probably toolboxes
> don't use SIMDs. You have a chance the SSE to be used if you have some
> linear algebra of FFT functions and/or substitute Matlab's BLAS by built i
n
> Intel MKL BLAS (search MKL in Matlab help) or your toolbox functions use
> some linear algebra. You can also write your own code and use it through
> mex/dll interfacing.
The ATLAS BLAS library that MATLAB ships with does use the SSE/SSE2
instructions. The Intel MKL will indeed be a bit faster, but anything
that can be expressed as matrix operations will probably be very
fast. FFT likewise.
Other MATLAB functions are probably not MMX/SSE/SSE2 optimized.
Before you despair, you might try to implement it in the
straightforward way, then use the profiler to see what pieces need
improvement.
Peter Boettcher <boettcher.matlab.itags.org.ll.mit.edu>
MIT Lincoln Laboratory
MATLAB FAQ: http://www.mit.edu/~pwb/cssm/
#2; Wed, 07 May 2008 19:44:00 GMT

- "Peter Boettcher" <boettcher.matlab.itags.org.ll.mit.edu> wrote in message
news:m3wtauke3s.fsf.matlab.itags.org.coyote.llan.ll.mit.edu...
> "uC" <uC.matlab.itags.org.blabla.bla> writes:
>
> The ATLAS BLAS library that MATLAB ships with does use the SSE/SSE2
> instructions. The Intel MKL will indeed be a bit faster, but anything
> that can be expressed as matrix operations will probably be very
> fast. FFT likewise.
As of MATLAB 7.0.1 (R14SP1), we use the Intel MKL on Intel chips:
http://www.mathworks.com/access/hel...mages/ippl.html
Steve Lord
slord.matlab.itags.org.mathworks.com
#3; Wed, 07 May 2008 19:45:00 GMT

- Do these functions come under the IPP domain?
dwt
wnoisest
mssgolay
#4; Wed, 07 May 2008 19:46:00 GMT