Re: [Boost-bugs] [Boost C++ Libraries] #4431: stdint.h not available in CUDA nvcc + visual studio

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #4431: stdint.h not available in CUDA nvcc + visual studio
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-12-20 17:54:47


#4431: stdint.h not available in CUDA nvcc + visual studio
------------------------------------------------+---------------------------
  Reporter: Sergey Mitsyn <svm@…> | Owner: johnmaddock
      Type: Bugs | Status: new
 Milestone: Boost 1.44.0 | Component: config
   Version: Boost 1.43.0 | Severity: Problem
Resolution: | Keywords: CUDA nvcc stdint.h
------------------------------------------------+---------------------------

Comment (by sven.prevrhal@…):

 John - At this point, I am using MSVC 9.0 on Win 7 64-bit, compiling for
 64-bit with CUDA 3.2 using nvcc with the -m64 switch.

 Getting this to work has failed, at least for me. If I switch in
 basic_cstring
 {{{
 #if !BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
     enum npos_type { npos = static_cast<size_type>(-1) };
 #else
     // IBM/VisualAge version 6 is not able to handle enums larger than 4
 bytes.
     // But size_type is 8 bytes in 64bit mode.
     static const size_type npos = -1 ;
 #endif
 }}}

 to the #else clause, the cuda compiler dies:

 {{{
 1>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v3.2\\bin\nvcc.exe"
 -m64 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin"
 -D_DEBUG -D_WIN32 -I"C:\Program Files\NVIDIA GPU Computing
 Toolkit\CUDA\v3.2\\include" -I"./" -I"../../common/inc"
 -I"../../../shared/inc"
 -I""D:\projects\quattro\src\recon\src\\..\include\TEST_librecon""
 -I""D:\projects\quattro\src\recon\src\\..\include""
 -I""c:\packages\boost\include\boost-1_43"" -I""c:\packages\boost\include""
 -Xcompiler "/EHsc /W3 /nologo /O2 /Zi /MDd " -maxrregcount=32
 -gencode=arch=compute_10,code=\"sm_10,compute_10\"
 -gencode=arch=compute_20,code=\"sm_20,compute_20\" --compile -o
 "x64\Debug\sorting.cu.obj"
 "d:\projects\quattro\src\recon\src\TEST_librecon\sorting.cu"
 1>sorting.cu
 1>c:\packages\boost\include\boost-
 1_43\boost/test/utils/basic_cstring/basic_cstring.hpp(59): warning:
 integer conversion resulted in a change of sign
 1>nvcc error : 'cudafe' died with status 0xC0000005 (ACCESS_VIOLATION)
 1>Compiling...
 }}}

 I am not experienced enough to work up a patch for this. I can't even tell
 if that's a bug with nvcc (since people report boost to work with gcc, but
 have they tested boost unit testing?) or whether the boost macros are just
 wrong for the nvcc on MSVC case.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/4431#comment:5>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:05 UTC