On Thu, Jan 7, 2010 at 8:52 PM, Luke Parkinson <span dir="ltr">&lt;<a href="mailto:lparkinson@vpac.org">lparkinson@vpac.org</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div><div style="font-family: Times New Roman; font-size: 12pt; color: rgb(0, 0, 0);"><div style="font-family: Times New Roman; font-size: 12pt; color: rgb(0, 0, 0);"><div><div></div><div class="h5">----- &quot;James Bigler&quot; &lt;<a href="mailto:jamesbigler@gmail.com" target="_blank">jamesbigler@gmail.com</a>&gt; wrote:
<br>&gt; On Wed, Jan 6, 2010 at 11:00 PM, Luke Parkinson <span dir="ltr">&lt;<a href="mailto:lparkinson@vpac.org" target="_blank">lparkinson@vpac.org</a>&gt;</span> wrote:<br>&gt; <div class="gmail_quote">&gt; <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">



Hello Everyone,<br>&gt; 
<br>&gt; 
I apologise in advance if this is the wrong way to revive an old topic, but I wasn&#39;t sure how to reply to old threads in the mailing list and I&#39;m new to this list.  I&#39;m part of a team of developers looking at integrating CUDA into the Insight Toolkit (<a href="http://www.itk.org/" target="_blank">http://www.itk.org/</a>). People subscribing to the mailing list over there might have heard from my colleague.<br>

&gt; 


<br>&gt; 
Thanks to James Bigler and his FindCUDA.cmake module, we have been able to get CUDA and ITK to link into the executable, but we&#39;re having a similar problem to the previous post (included below just in case).  I have created several &#39;build environments&#39; using this module with my own modifications that include the SDK (as an aside, can anyone point me in the direction of code that integrates C++ and CUDA without using cutil.h or cutil_inline.h?).  It works brilliantly with just the CUDA SDK, and the SDK plus our own C++ CUDA utility programs, but when we include the ITK in the configuration, building gives errors exactly like those above.  I&#39;ve attached my modifications to the FindCUDA.cmake module (with a diff), and the &#39;CMakeLists.txt&#39;s we&#39;re using in the root and source directories.<br>

&gt; 


<br>&gt; 
We got the original FindCUDA.cmake from the svn repository, and based our code on the driver examples. When we add our own CUDA/C++ code (files omitted as code is still under development, permission is required), we get the same errors as mentioned previously, along the lines of &#39;warning: comparison between signed and unsigned integer expressions&#39;.<br>

&gt; 

 
<br>&gt; </blockquote><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Just including ITK (without our own code, using the provided driver code examples)<br>&gt; 
[Attached the corresponding files as ITKOnly_FindCUDA.cmake, ITKOnly_root_CMakeLists.txt, ITKOnly_src_CMakeLists.txt]<br>&gt; <br>&gt; 
Any ideas or suggestions would be helpful.  This isn&#39;t crippling (only warnings), but it is annoying and could lead to problems later on if it has to do with how the CMake module deals with C/C++ code.  I also noticed with that same module that there are a few variables that don&#39;t seem to do anything.  The example I found was CUDA_INCLUDE_DIRECTORIES (deprecated by CUDA_INCLUDE_DIRS?).  I assume that svn version was the most up-to-date, please let me know if I am wrong.<br>

&gt; 

</blockquote></div><br>&gt; snip...<br>&gt; <br>&gt; What versions of CUDA are you using?  2.3 or a 3.0 beta?<br>&gt; <br>&gt; Also, could you send the output of &#39;make VERBOSE=1&#39; with CUDA_NVCC_FLAGS=-v for a single object compilation that has these warning?  I would like to determine at which point these flags are causing problems.<br>

&gt; 

<br>&gt; You could also attach (if possible) the cmake build script that is invoked by FindCUDA for the same object?<br>&gt; <br>&gt; Also, please make sure that CUDA_HOST_COMPILATION_CPP is ON (this can also be verified by me with the cuda_compile....cmake file you can attach).<br>

&gt; 

<br>&gt; There is also the CUDA_PROPAGATE_HOST_FLAGS that you could turn off, if you wish to manage all the host flag propagation manually by using the OPTION -Xcompiler combination.<br>&gt; <br>&gt; James<br>&gt;<br></div>

</div>The CMake build script is identicle to the others I posted, just different source files and executable names.  I included it anyway though, in case there was something I missed.  I also double-checked the CUDA_HOST_COMPILATION flag, it&#39;s definitely set to 1.  If you still think it would help, where can I find cuda_compile.cmake?<br>

<br>I&#39;ve attached the complete &#39;make VERBOSE=1&#39; for both the FindCUDA.cmake sample code, and one with some of the warnings we&#39;ve been getting for our own code.  The CMakeCache.txt is from the ITK build I&#39;m using, so you can see some of the variables it had defined internally.  If you&#39;ve seen the CMakeLists.txt I sent yesterday, it includes an ITK file USE_ITK_FILE (it&#39;s just in the recommendded build, points to the attached UseITK.cmake), which is where the new compile flags are introduced.<br>

<br>Thanks for the tip about the CUDA_PROPAGATE_HOST_FLAGS and OPTION -Xcompiler, I&#39;ll try it out if all else fails. And thanks for the quick reply and you help with this,<br><font color="#888888"><br>Luke<br><br><br>

</font></div></div></div></blockquote></div><br>Thanks.  If it&#39;s possible, I need the output after adding the -v argument to the CUDA_NVCC_FLAGS.  This will show all the compilation steps from nvcc and then we can see what commands nvcc is passing to the compiler as well as what source files its using.<br>

<br>Also, does it produce the warning when you don&#39;t specify -Wall?  You may be able to suppress this flag with a -Wno-all for CUDA code.<br><br>The cuda_compile.cmake file I talked about is part of the build system.  Each CUDA file generates its own compilation script which is then invoked by the build system.  The one for <a href="http://test_bin.cu">test_bin.cu</a> in the svn test system should be found here:<br>

<br>build/src/CMakeFiles/cuda_compile_generated_test_bin.cu.obj.cmake<br><br>This file contains all the parameters (well most of them) that are used to compile the CUDA file.  You don&#39;t have to send it to me now.  I can see what I need to from the verbose output.<br>

<br>Thanks,<br>James<br>