Boost C++ Libraries: Ticket #8647: Incorrect Identification of CUDA NVCC with User-Defined Backend https://svn.boost.org/trac10/ticket/8647 <p> Boost does not identify the CUDA NVCC compiler with user-defined backend compilers correctly. Boost assumes that either GCC or Visual C++ that is the default backend of NVCC is the only available backend. However NVCC has the -ccbin option changing backend compilers to what you want, and may compile CUDA programs with backends unexpected by Boost. </p> <p> So I wrote a patch that all of the compilers supported by Boost get valid as a backend of NVCC. It ports the generic identification routine of select_compiler_config.hpp to nvcc.hpp. </p> <p> I heard that CUDA 5.5 will support Clang as a backend for OS X. This patch would be needed for the upcoming next version. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/8647 Trac 1.4.3 ryo-nishimura@… Tue, 04 Jun 2013 07:18:26 GMT attachment set https://svn.boost.org/trac10/ticket/8647 https://svn.boost.org/trac10/ticket/8647 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">nvcc.hpp.patch</span> </li> </ul> Ticket viboes Sat, 08 Jun 2013 16:53:47 GMT component changed; owner set https://svn.boost.org/trac10/ticket/8647#comment:1 https://svn.boost.org/trac10/ticket/8647#comment:1 <ul> <li><strong>owner</strong> set to <span class="trac-author">John Maddock</span> </li> <li><strong>component</strong> <span class="trac-field-old">None</span> → <span class="trac-field-new">config</span> </li> </ul> Ticket John Maddock Tue, 23 Jul 2013 17:44:01 GMT <link>https://svn.boost.org/trac10/ticket/8647#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8647#comment:2</guid> <description> <p> I'm wondering - since nvcc.hpp basically does next to nothing - whether it would be better to simply remove it, and let select_compiler_config.hpp select on the basis of the underlying compiler? </p> </description> <category>Ticket</category> </item> <item> <author>ryo-nishimura@…</author> <pubDate>Wed, 24 Jul 2013 04:53:49 GMT</pubDate> <title>attachment set https://svn.boost.org/trac10/ticket/8647 https://svn.boost.org/trac10/ticket/8647 <ul> <li><strong>attachment</strong> → <span class="trac-field-new">nvcc.hpp.johnmaddock.patch</span> </li> </ul> Ticket ryo-nishimura@… Wed, 24 Jul 2013 04:59:01 GMT <link>https://svn.boost.org/trac10/ticket/8647#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8647#comment:3</guid> <description> <p> johnmaddock, thank you for your advising. I have revised the patch with your concept. </p> <p> My new patch is to make the NVCC compiler's branch of select_compiler_config.hpp independent from the other compilers' tree and to remove the existing duplicated tree of nvcc.hpp. </p> <p> I have checked this patch working fine as the old patch. Would it become a more smart solution for my purpose? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>John Maddock</dc:creator> <pubDate>Wed, 24 Jul 2013 17:19:06 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/8647#comment:4 https://svn.boost.org/trac10/ticket/8647#comment:4 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> </ul> <p> (In <a class="changeset" href="https://svn.boost.org/trac10/changeset/85154" title="Apply patch from #8647. Fixes #8647.">[85154]</a>) Apply patch from <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/8647" title="#8647: Patches: Incorrect Identification of CUDA NVCC with User-Defined Backend (closed: fixed)">#8647</a>. Fixes <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/8647" title="#8647: Patches: Incorrect Identification of CUDA NVCC with User-Defined Backend (closed: fixed)">#8647</a>. </p> Ticket robert.maynard@… Wed, 15 Jan 2014 21:46:18 GMT <link>https://svn.boost.org/trac10/ticket/8647#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8647#comment:5</guid> <description> <p> I apologize if it is bad behavior to comment on closed bugs. </p> <p> These changes to detecting the backend for nvcc has had the side effect of making it not possible to use the clang backend with CUDA 5.5. My testbed machine is a Mac Lion with CUDA 5.5 and XCode 5.0.2. </p> <p> The problem is that the nvcc with the clang backend is expecting clang to be emulating gcc 4.2. </p> <p> The solution is that select_compiler_config.hpp should have the following guard: </p> <pre class="wiki"> #elif defined __clang__ &amp;&amp; !defined(__CUDACC__) // Clang C++ emulates GCC, so it has to appear early. # define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp" </pre> </description> <category>Ticket</category> </item> <item> <author>ryo-nishimura@…</author> <pubDate>Thu, 16 Jan 2014 01:29:23 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/8647#comment:6 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/8647#comment:6</guid> <description> <p> Hi Robert Maynard, </p> <p> Thank you for your reporting a bug of my patch. </p> <p> The user-defined backend trouble I really had was on Linux, and CUDA 5.5 on OS X was used as only my sophism in order to persuade necessity of my patch. Really I have never understood nor tested the implementation of OS X CUDA 5.5 released after my patch committed. </p> <p> I apologize for my irresponsible and thank you again. </p> </description> <category>Ticket</category> </item> </channel> </rss>