<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: Multithreaded FFT functions in MATLAB R2009a</title>
	<link>http://blogs.mathworks.com/steve/2009/04/17/multithreaded-fft-functions-in-matlab-r2009a/</link>
	<description>Steve Eddins manages the Image &#38; Geospatial development team at &#60;a href="http://www.mathworks.com/"&#62;The MathWorks&#60;/a&#62; and coauthored &#60;a href="http://www.mathworks.com/support/books/book5291.html?category=-1&#38;language=-1"&#62;Digital Image Processing Using MATLAB&#60;/a&#62;. He writes here about image processing concepts, algorithm implementations, and MATLAB.&#60;br&#62;&#60;br&#62;&#60;img&#62;</description>
	<pubDate>Mon, 23 Nov 2009 01:14:46 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
		<item>
		<title>By: Steve</title>
		<link>http://blogs.mathworks.com/steve/2009/04/17/multithreaded-fft-functions-in-matlab-r2009a/#comment-21967</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Mon, 13 Jul 2009 13:03:43 +0000</pubDate>
		<guid>http://blogs.mathworks.com/steve/2009/04/17/multithreaded-fft-functions-in-matlab-r2009a/#comment-21967</guid>
		<description>Khairiah&#8212;The MATLAB FFT functions work in floating point. You can convert your 16-bit unsigned integer data to floating point (single or double), compute the FFT, and then convert back.</description>
		<content:encoded><![CDATA[<p>Khairiah&mdash;The MATLAB FFT functions work in floating point. You can convert your 16-bit unsigned integer data to floating point (single or double), compute the FFT, and then convert back.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: khairiah</title>
		<link>http://blogs.mathworks.com/steve/2009/04/17/multithreaded-fft-functions-in-matlab-r2009a/#comment-21960</link>
		<dc:creator>khairiah</dc:creator>
		<pubDate>Fri, 10 Jul 2009 06:11:01 +0000</pubDate>
		<guid>http://blogs.mathworks.com/steve/2009/04/17/multithreaded-fft-functions-in-matlab-r2009a/#comment-21960</guid>
		<description>Hi Steve,

Based on documentation,fft supports inputs of data types double and single .Is fft also support data type sign and unsigned integer for 8bit and 16bit image?
I have problems,where i need to input 16bit unsigned data into fft function,so that I can get the same unsigned 16 bit output.</description>
		<content:encoded><![CDATA[<p>Hi Steve,</p>
<p>Based on documentation,fft supports inputs of data types double and single .Is fft also support data type sign and unsigned integer for 8bit and 16bit image?<br />
I have problems,where i need to input 16bit unsigned data into fft function,so that I can get the same unsigned 16 bit output.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve</title>
		<link>http://blogs.mathworks.com/steve/2009/04/17/multithreaded-fft-functions-in-matlab-r2009a/#comment-21717</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Wed, 29 Apr 2009 12:43:18 +0000</pubDate>
		<guid>http://blogs.mathworks.com/steve/2009/04/17/multithreaded-fft-functions-in-matlab-r2009a/#comment-21717</guid>
		<description>Erik&#8212;We are always looking at technology options, but I can't be specific about our plans.

You are correct that imfilter and convn do not use frequency-domain-based implementations.

imfilter does use the Intel IPP library for some inputs, and IPP exploits the extended instruction sets you mentioned. IPP does not support 3-D filtering, however.</description>
		<content:encoded><![CDATA[<p>Erik&mdash;We are always looking at technology options, but I can&#8217;t be specific about our plans.</p>
<p>You are correct that imfilter and convn do not use frequency-domain-based implementations.</p>
<p>imfilter does use the Intel IPP library for some inputs, and IPP exploits the extended instruction sets you mentioned. IPP does not support 3-D filtering, however.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: erik</title>
		<link>http://blogs.mathworks.com/steve/2009/04/17/multithreaded-fft-functions-in-matlab-r2009a/#comment-21716</link>
		<dc:creator>erik</dc:creator>
		<pubDate>Wed, 29 Apr 2009 01:20:50 +0000</pubDate>
		<guid>http://blogs.mathworks.com/steve/2009/04/17/multithreaded-fft-functions-in-matlab-r2009a/#comment-21716</guid>
		<description>hi steve-
are you considering using CUDA?  i believe the speedup would be substantial.  i would like to make a pixel shader to do n-d filtering on the GPU.  i need 3-dimensional (inseparable, circular) filtering in real time for psychophysical/neurophysiology experiments, using psychtoolbox, which provides an interface btw matlab and the GPU, including shaders.  there is a 2-d filtering example provided, and i'm trying generalize it by translating the implementation in imfilter_mex.h/ndim_filter() (or \toolbox\matlab\datafun\convnc.cpp\convolve()) for use as a shader.

the rough size of my problem is to show ~ 50x50 movie at 100hz, filtered by a ~ 35x35x12 kernel (tho even bigger would be even better).  using imfilter this takes ~8x real time on a 2.6GHz core2 duo, and i didn't see any speedup from upgrading to 2009a, i think because fft is not used by either imfilter or convn.  

i'm finding all the index bookkeeping to be a headache.  i was wondering if this would be an easy problem for you to demo, and a great excuse for exploring if using the GPU in matlab (esp. image/signal processing) could be an important market opportunity for mathworks (as has been demonstrated by folding@home, which saw a speed up of several orders of magnitude, for example).  a less preferable alternative would be to use the FPU -- neither example seems to make use of vectorized SIMD calls that have long been available -- why is that?</description>
		<content:encoded><![CDATA[<p>hi steve-<br />
are you considering using CUDA?  i believe the speedup would be substantial.  i would like to make a pixel shader to do n-d filtering on the GPU.  i need 3-dimensional (inseparable, circular) filtering in real time for psychophysical/neurophysiology experiments, using psychtoolbox, which provides an interface btw matlab and the GPU, including shaders.  there is a 2-d filtering example provided, and i&#8217;m trying generalize it by translating the implementation in imfilter_mex.h/ndim_filter() (or \toolbox\matlab\datafun\convnc.cpp\convolve()) for use as a shader.</p>
<p>the rough size of my problem is to show ~ 50&#215;50 movie at 100hz, filtered by a ~ 35&#215;35x12 kernel (tho even bigger would be even better).  using imfilter this takes ~8x real time on a 2.6GHz core2 duo, and i didn&#8217;t see any speedup from upgrading to 2009a, i think because fft is not used by either imfilter or convn.  </p>
<p>i&#8217;m finding all the index bookkeeping to be a headache.  i was wondering if this would be an easy problem for you to demo, and a great excuse for exploring if using the GPU in matlab (esp. image/signal processing) could be an important market opportunity for mathworks (as has been demonstrated by <a href="mailto:folding@home">folding@home</a>, which saw a speed up of several orders of magnitude, for example).  a less preferable alternative would be to use the FPU &#8212; neither example seems to make use of vectorized SIMD calls that have long been available &#8212; why is that?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve</title>
		<link>http://blogs.mathworks.com/steve/2009/04/17/multithreaded-fft-functions-in-matlab-r2009a/#comment-21688</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Mon, 20 Apr 2009 13:20:50 +0000</pubDate>
		<guid>http://blogs.mathworks.com/steve/2009/04/17/multithreaded-fft-functions-in-matlab-r2009a/#comment-21688</guid>
		<description>Jason&#8212;No, the FFT implementation is not limited to two cores.  However, other factors in the computation can limit the speedup achieved. For example, cache misses when computing the one-dimensional FFT along the non-unit-stride dimension can dominate overall execution time.</description>
		<content:encoded><![CDATA[<p>Jason&mdash;No, the FFT implementation is not limited to two cores.  However, other factors in the computation can limit the speedup achieved. For example, cache misses when computing the one-dimensional FFT along the non-unit-stride dimension can dominate overall execution time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason Merrill</title>
		<link>http://blogs.mathworks.com/steve/2009/04/17/multithreaded-fft-functions-in-matlab-r2009a/#comment-21685</link>
		<dc:creator>Jason Merrill</dc:creator>
		<pubDate>Sat, 18 Apr 2009 20:46:10 +0000</pubDate>
		<guid>http://blogs.mathworks.com/steve/2009/04/17/multithreaded-fft-functions-in-matlab-r2009a/#comment-21685</guid>
		<description>This is great news.  Thanks for your work.

Is the parallelism limited to only two cores at this point?  I was excited by the 2x speedup for a 1024x1024 fft2 on my dual core laptop, but a little surprised that the speedup was still only 2x on our 8 core machine.</description>
		<content:encoded><![CDATA[<p>This is great news.  Thanks for your work.</p>
<p>Is the parallelism limited to only two cores at this point?  I was excited by the 2x speedup for a 1024&#215;1024 fft2 on my dual core laptop, but a little surprised that the speedup was still only 2x on our 8 core machine.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
