id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 13049,nvcc CT Error: Boost 1.64.0 & CUDA 8.0,r.widera@…,karsten,"Compiling a host program which uses boost odeint integrate with nvcc from CUDA8.0 is not possible. The issue has been reported to Nvidia and will be fixed in CUDA 9. == Error == nvcc is crashing with an internal cudafe error {{{ /boost/numeric/odeint/stepper/controlled_runge_kutta.hpp(66): internal error: assertion failed at: ""/dvs/p4/build/sw/rel/gpu_drv/r361/r361_00/drivers/compiler/edg/EDG_4.10/src/types.c"", line 7537 1 catastrophic error detected in the compilation of ""/tmp/tmpxft_0000369f_00000000-9_main.cpp1.ii"". }}} == Example == {{{ #include // this include is needed to compile with cuda 7.5 // boost bug: https://svn.boost.org/trac/boost/ticket/12516 // see fix https://github.com/boostorg/serialization/commit/1d86261581230e2dc5d617a9b16287d326f3e229 #include #include #include typedef double float_64; namespace foo{ struct Probability { Probability() {} template void operator()(const T_State &, T_State &dpdtheta, const float_64 theta) const { const float_64 theta2 = theta*theta; dpdtheta[0] = theta2; } }; } int main() { namespace odeint = boost::numeric::odeint; typedef boost::array state_type; state_type integral_result = {0.0}; const float_64 lowerLimit = 0.0; const float_64 upperLimit = 0.1; const float_64 stepwidth = (2000 - 10) / float_64(1000.0); foo::Probability integrand; odeint::integrate(integrand, integral_result, lowerLimit, upperLimit, stepwidth); std::cout<