<div dir="ltr"><div><div><div>Hi,<br>Thanks! A few things. First, going from the latest release to HEAD, I had a compilation issue:<br><font size="1">/home/<span style class="">srit</span>/<span style class="">src</span>/itk4/<span style class="">itk</span>/Modules/Filtering/<span style class="">FFT</span>/include/<span style class="">itkFFTWHalfHermitianToRealInve</span><span style class="">rseFFTImageFilter</span>.<span style class="">hxx</span>:103:5:   required from ‘void <span style class="">itk</span>::<span style class="">FFTWHalfHermitianToRealInverse</span><span style class="">FFTImageFilter</span>&lt;<span style class="">TInputImage</span>, <span style class="">TOutputImage</span>&gt;::<span style class="">BeforeThreadedGenerateData</span>() [with <span style class="">TInputImage</span> = <span style class="">itk</span>::Image&lt;std::complex&lt;double&gt;, 3u&gt;; <span style class="">TOutputImage</span> = <span style class="">itk</span>::Image&lt;double, 3u&gt;]’<br>



/home/<span style class="">srit</span>/<span style class="">src</span>/<span style class="">rtk</span>/<span style class="">rtk</span>/testing/<span style class="">rtkdisplaceddetectortest</span>.<span style class="">cxx</span>:203:1:   required from here<br>

/<span style class="">usr</span>/lib/<span style class="">gcc</span>/x86_64-<span style class="">redhat</span>-<span style class="">linux</span>/4.7.2/../../../../include/c++/4.7.2/bits/<span style class="">stl</span>_<span style class="">algobase</span>.h:329:8: <span style class="">erreur</span>: incompatible types in assignment of ‘const std::complex&lt;double&gt;’ to ‘double [2]’<br>



</font><br>I fixed it with a pointer cast<span></span><span></span><br><font size="1">diff --git a/Modules/Filtering/<span style class="">FFT</span>/include/<span style class="">itkFFTWHalfHermitianToRealInve</span><span style class="">rseFFTImageFilter</span>.<span style class="">hxx</span> b/Modules/Filtering/<span style class="">FFT</span>/include/<span style class="">itkFFTWHalfHermitianToRealInve</span><span style class="">rseFFTImageFilter</span>.<span style class="">hxx</span><br>



index 9338cb1..806d803 100644<br>--- a/Modules/Filtering/<span style class="">FFT</span>/include/<span style class="">itkFFTWHalfHermitianToRealInve</span><span style class="">rseFFTImageFilter</span>.<span style class="">hxx</span><br>

+++ b/Modules/Filtering/<span style class="">FFT</span>/include/<span style class="">itkFFTWHalfHermitianToRealInve</span><span style class="">rseFFTImageFilter</span>.<span style class="">hxx</span><br>@@ -100,7 +100,7 @@ <span style class="">FFTWHalfHermitianToRealInverse</span><span style class="">FFTImageFilter</span>&lt; <span style class="">TInputImage</span>, <span style class="">TOutputImage</span> &gt;<br>



                                       !m_<span style class="">CanUseDestructiveAlgorithm</span> );<br>   if( !m_<span style class="">CanUseDestructiveAlgorithm</span> )<br>     {<br>-    <span style class="">itk</span>::algorithm::copy_n(<span style class="">inputPtr</span>-&gt;<span style class="">GetBufferPointer</span>(), <span style class="">totalInputSize</span>,  in);<br>

+    <span style class="">itk</span>::algorithm::copy_n((<span style class="">typename</span> <span style class="">FFTWProxyType</span>::<span style class="">ComplexType</span>*)<span style class="">inputPtr</span>-&gt;<span style class="">GetBufferPointer</span>(), <span style class="">totalInputSize</span>,  in);<br>



     }<br>   <span style class="">FFTWProxyType</span>::Execute( plan );<br></font><br>Second, there is a missing parenthesis in the patch:<br><font size="1">/home/<span style class="">srit</span>/<span style class="">src</span>/itk4/lin64-<span style class="">dg</span>/<span style class="">fftwd</span>_configure_step.<span style class="">cmake</span>:36:<br>

Parse error.  Function missing ending &quot;)&quot;.  End of file reached.<br>

<br></font></div><font>Finally, <font>the patch <font><span style class="">propa</span><font>gates -O3 but d<font><span style class="">oes</span></font> not fully fix the speed issue. A<font><span style class="">fter</span> a bit more digging, it turns out that sse2 instructions are not automatically ac<font><span style class="">tivated</span><font>. One must <font>set <span style class="">FFTW</span>_OPTIMIZATION_CONFIGURATION to &quot;--enable-sse2&quot;. <span style class="">Shoul</span><font><span style class="">dn&#39;t</span> this be done automatically? <font>Setting it fixed the compilation time.</font><br>



</font></font></font></font></font></font></font></font></font></div><font><font><font><font><font><font><font><font><font><font>Thanks a<font>gain for your help<font>,<br></font></font></font></font></font></font></font></font></font></font></font></font></div>


<font>
<font><font><font><font><font><font><font><font><font><font><font><font><font>Simon</font><br></font></font></font></font></font></font></font></font></font></font></font></font></font><div class="gmail_extra"><font>
</font><br><br><div class="gmail_quote">On Fri, Apr 12, 2013 at 8:27 PM, Bradley <span style class="">Lowekamp</span> <span dir="ltr">&lt;<a href="mailto:blowekamp@mail.nih.gov" target="_blank"><span style class="">blowekamp</span>@mail.<span style class="">nih</span>.gov</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hello,<br>
<br>
I have placed a patch on gerrit for review:<br>
<br>
<a href="http://review.source.kitware.com/#/c/10848/" target="_blank">http://review.source.kitware.com/#/c/10848/</a><br>
<br>
Please let us know if works for you.<br>
<br>
Brad<br>
<div><div><br>
On Apr 12, 2013, at 12:15 PM, Bradley Lowekamp &lt;<a href="mailto:blowekamp@mail.nih.gov" target="_blank">blowekamp@mail.nih.gov</a>&gt; wrote:<br>
<br>
&gt; Looking at the cmake build scripts:<br>
&gt;<br>
&gt; <a href="https://github.com/Kitware/ITK/blob/master/CMake/itkExternal_FFTW.cmake#L44" target="_blank">https://github.com/Kitware/ITK/blob/master/CMake/itkExternal_FFTW.cmake#L44</a><br>
&gt;<br>
&gt; It looks like CMAKE_C_FLAGS_RELEASE is not getting passed.<br>
&gt;<br>
&gt; I&#39;ll see if I can take this on after lunch.<br>
&gt;<br>
&gt; Brad<br>
&gt;<br>
&gt; On Apr 12, 2013, at 11:30 AM, Simon Rit &lt;<a href="mailto:simon.rit@creatis.insa-lyon.fr" target="_blank">simon.rit@creatis.insa-lyon.fr</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; I&#39;m not sure it&#39;s the reason: I don&#39;t expect a two fold improvement<br>
&gt;&gt; and the system has the same version installed, 3.3.2. Are we sure that<br>
&gt;&gt; the release flags are passed to FFTW? When I looked at the compilation<br>
&gt;&gt; log, I don&#39;t see -O3, here is an excerpt:<br>
&gt;&gt;<br>
&gt;&gt; /bin/sh ../libtool --tag=CC   --mode=compile /usr/bin/cc -std=gnu99<br>
&gt;&gt; -DHAVE_CONFIG_H -I.<br>
&gt;&gt; -I/home/srit/src/itk4/lin64-dg/fftwd/src/fftwd/kernel -I..<br>
&gt;&gt; -I/home/srit/src/itk4/lin64-dg/fftwd/src/fftwd/simd<br>
&gt;&gt; -Wno-uninitialized -Wno-unused-parameter -Wall -Wcast-align<br>
&gt;&gt; -Wdisabled-optimization -Wextra -Wformat=2 -Winvalid-pch<br>
&gt;&gt; -Wno-format-nonliteral -Wpointer-arith -Wshadow -Wunused<br>
&gt;&gt; -Wwrite-strings -funit-at-a-time -Wno-strict-overflow  -MT<br>
&gt;&gt; cpy2d-pair.lo -MD -MP -MF .deps/cpy2d-pair.Tpo -c -o cpy2d-pair.lo<br>
&gt;&gt; /home/srit/src/itk4/lin64-dg/fftwd/src/fftwd/kernel/cpy2d-pair.c<br>
&gt;&gt; libtool: compile:  /usr/bin/cc -std=gnu99 -DHAVE_CONFIG_H -I.<br>
&gt;&gt; -I/home/srit/src/itk4/lin64-dg/fftwd/src/fftwd/kernel -I..<br>
&gt;&gt; -I/home/srit/src/itk4/lin64-dg/fftwd/src/fftwd/simd -Wno-uninitialized<br>
&gt;&gt; -Wno-unused-parameter -Wall -Wcast-align -Wdisabled-optimization<br>
&gt;&gt; -Wextra -Wformat=2 -Winvalid-pch -Wno-format-nonliteral<br>
&gt;&gt; -Wpointer-arith -Wshadow -Wunused -Wwrite-strings -funit-at-a-time<br>
&gt;&gt; -Wno-strict-overflow -MT cpy2d-pair.lo -MD -MP -MF<br>
&gt;&gt; .deps/cpy2d-pair.Tpo -c<br>
&gt;&gt; /home/srit/src/itk4/lin64-dg/fftwd/src/fftwd/kernel/cpy2d-pair.c -o<br>
&gt;&gt; cpy2d-pair.o<br>
&gt;&gt; mv -f .deps/cpy2d-pair.Tpo .deps/cpy2d-pair.Plo<br>
&gt;&gt; /bin/sh ../libtool --tag=CC   --mode=compile /usr/bin/cc -std=gnu99<br>
&gt;&gt; -DHAVE_CONFIG_H -I.<br>
&gt;&gt; -I/home/srit/src/itk4/lin64-dg/fftwd/src/fftwd/kernel -I..<br>
&gt;&gt; -I/home/srit/src/itk4/lin64-dg/fftwd/src/fftwd/simd<br>
&gt;&gt; -Wno-uninitialized -Wno-unused-parameter -Wall -Wcast-align<br>
&gt;&gt; -Wdisabled-optimization -Wextra -Wformat=2 -Winvalid-pch<br>
&gt;&gt; -Wno-format-nonliteral -Wpointer-arith -Wshadow -Wunused<br>
&gt;&gt; -Wwrite-strings -funit-at-a-time -Wno-strict-overflow  -MT cpy2d.lo<br>
&gt;&gt; -MD -MP -MF .deps/cpy2d.Tpo -c -o cpy2d.lo<br>
&gt;&gt; /home/srit/src/itk4/lin64-dg/fftwd/src/fftwd/kernel/cpy2d.c<br>
&gt;&gt; libtool: compile:  /usr/bin/cc -std=gnu99 -DHAVE_CONFIG_H -I.<br>
&gt;&gt; -I/home/srit/src/itk4/lin64-dg/fftwd/src/fftwd/kernel -I..<br>
&gt;&gt; -I/home/srit/src/itk4/lin64-dg/fftwd/src/fftwd/simd -Wno-uninitialized<br>
&gt;&gt; -Wno-unused-parameter -Wall -Wcast-align -Wdisabled-optimization<br>
&gt;&gt; -Wextra -Wformat=2 -Winvalid-pch -Wno-format-nonliteral<br>
&gt;&gt; -Wpointer-arith -Wshadow -Wunused -Wwrite-strings -funit-at-a-time<br>
&gt;&gt; -Wno-strict-overflow -MT cpy2d.lo -MD -MP -MF .deps/cpy2d.Tpo -c<br>
&gt;&gt; /home/srit/src/itk4/lin64-dg/fftwd/src/fftwd/kernel/cpy2d.c -o cpy2d.o<br>
&gt;&gt; mv -f .deps/cpy2d.Tpo .deps/cpy2d.Plo<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Fri, Apr 12, 2013 at 5:21 PM, Bill Lorensen &lt;<a href="mailto:bill.lorensen@gmail.com" target="_blank">bill.lorensen@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt; Looks like the fftw folks have made some efficiency improvements.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Fri, Apr 12, 2013 at 11:18 AM, Simon Rit &lt;<a href="mailto:simon.rit@creatis.insa-lyon.fr" target="_blank">simon.rit@creatis.insa-lyon.fr</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I should have mentioned it: yes, it is!<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Fri, Apr 12, 2013 at 5:16 PM, Bill Lorensen &lt;<a href="mailto:bill.lorensen@gmail.com" target="_blank">bill.lorensen@gmail.com</a>&gt;<br>
&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt; Is your ITK built Release?<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; On Fri, Apr 12, 2013 at 11:13 AM, Simon Rit<br>
&gt;&gt;&gt;&gt;&gt; &lt;<a href="mailto:simon.rit@creatis.insa-lyon.fr" target="_blank">simon.rit@creatis.insa-lyon.fr</a>&gt;<br>
&gt;&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; Hi,<br>
&gt;&gt;&gt;&gt;&gt;&gt; We have recently observed on a fedora distribution that FFTW is two<br>
&gt;&gt;&gt;&gt;&gt;&gt; times slower when one uses the ITK compilation<br>
&gt;&gt;&gt;&gt;&gt;&gt; (USE_SYSTEM_FFTW:BOOL=OFF, default) than when one uses the system fftw<br>
&gt;&gt;&gt;&gt;&gt;&gt; (USE_SYSTEM_FFTW:BOOL=ON).<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; We have looked for an explanation in the flags (the Fedora flags are<br>
&gt;&gt;&gt;&gt;&gt;&gt; available here<br>
&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://pkgs.fedoraproject.org/cgit/fftw.git/tree/fftw.spec" target="_blank">http://pkgs.fedoraproject.org/cgit/fftw.git/tree/fftw.spec</a>)<br>
&gt;&gt;&gt;&gt;&gt;&gt; but we have not managed to figure it out. Would someone happen to have<br>
&gt;&gt;&gt;&gt;&gt;&gt; an explanation and solution?<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; Thanks in advance,<br>
&gt;&gt;&gt;&gt;&gt;&gt; Simon<br>
&gt;&gt;&gt;&gt;&gt;&gt; _____________________________________<br>
&gt;&gt;&gt;&gt;&gt;&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; Visit other Kitware open-source projects at<br>
&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; Kitware offers ITK Training Courses, for more information visit:<br>
&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; Please keep messages on-topic and check the ITK FAQ at:<br>
&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; Follow this link to subscribe/unsubscribe:<br>
&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt;&gt; Unpaid intern in BillsBasement at noware dot com<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt; Unpaid intern in BillsBasement at noware dot com<br>
&gt;&gt; _____________________________________<br>
&gt;&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;&gt;<br>
&gt;&gt; Visit other Kitware open-source projects at<br>
&gt;&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;&gt;<br>
&gt;&gt; Kitware offers ITK Training Courses, for more information visit:<br>
&gt;&gt; <a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><br>
&gt;&gt;<br>
&gt;&gt; Please keep messages on-topic and check the ITK FAQ at:<br>
&gt;&gt; <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
&gt;&gt;<br>
&gt;&gt; Follow this link to subscribe/unsubscribe:<br>
&gt;&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
&gt;<br>
&gt; _____________________________________<br>
&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;<br>
&gt; Visit other Kitware open-source projects at<br>
&gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;<br>
&gt; Kitware offers ITK Training Courses, for more information visit:<br>
&gt; <a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><br>
&gt;<br>
&gt; Please keep messages on-topic and check the ITK FAQ at:<br>
&gt; <a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
&gt;<br>
&gt; Follow this link to subscribe/unsubscribe:<br>
&gt; <a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
<br>
_____________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at<br>
<a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Kitware offers ITK Training Courses, for more information visit:<br>
<a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at:<br>
<a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
</div></div></blockquote></div><br></div></div>