[Boost-bugs] [Boost C++ Libraries] #12382: nvcc 7.5 unable to compile boost/numeric/odeint example

Subject: [Boost-bugs] [Boost C++ Libraries] #12382: nvcc 7.5 unable to compile boost/numeric/odeint example
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2016-08-08 16:06:42


#12382: nvcc 7.5 unable to compile boost/numeric/odeint example
-----------------------------------------+---------------------
 Reporter: Olaf Pichler <boost.olaf@…> | Owner: dgregor
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: numeric
  Version: Boost 1.60.0 | Severity: Problem
 Keywords: |
-----------------------------------------+---------------------
 I'm trying to compile the boost example
 [https://github.com/headmyshoulder/odeint-v2/blob/master/examples/thrust/lorenz_parameters.cu
 "lorenz_parameters.cu"] referenced by the
 [http://www.boost.org/doc/libs/1_60_0/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html
 boost tutorial].

 Changes I made to reduce the number of errors:
 {{{
 $ diff lorenz_parameters.cu.orig lorenz_parameters.cu
 32c32,34
 < typedef double value_type;
 ---
> //typedef double value_type;
> typedef float value_type;
>
 35,38c37,40
 < typedef thrust::device_vector< value_type > state_type;
 < typedef thrust::device_vector< size_t > index_vector_type;
 < // typedef thrust::host_vector< value_type > state_type;
 < // typedef thrust::host_vector< size_t > index_vector_type;
 ---
> //typedef thrust::device_vector< value_type > state_type;
> //typedef thrust::device_vector< size_t > index_vector_type;
> typedef thrust::host_vector< value_type > state_type;
> typedef thrust::host_vector< size_t > index_vector_type;

 }}}


 compiler output: (same for gcc-4.9 and gcc-5)
 {{{
 $ nvcc -std=c++11 -o lorenz_parameters lorenz_parameters.cu
 lorenz_parameters.cu(279): error: no instance of overloaded function
 "integrate_adaptive" matches the argument list
             argument types are:
 (boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type,
 value_type, state_type, value_type,
 boost::numeric::odeint::thrust_algebra,
 boost::numeric::odeint::thrust_operations,
 boost::numeric::odeint::initially_resizer>,
 boost::numeric::odeint::default_error_checker<value_type,
 boost::numeric::odeint::thrust_algebra,
 boost::numeric::odeint::thrust_operations>,
 boost::numeric::odeint::default_step_adjuster<value_type, value_type>,
 boost::numeric::odeint::initially_resizer,
 boost::numeric::odeint::explicit_error_stepper_fsal_tag>, lorenz_system,
 std::pair<thrust::detail::normal_iterator<value_type *>,
 thrust::detail::normal_iterator<value_type *>>, double, double, const
 value_type)

 /usr/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp(103):
 error: no instance of overloaded function
 "boost::numeric::odeint::controlled_runge_kutta<ErrorStepper,
 ErrorChecker, StepAdjuster, Resizer,
 boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step [with
 ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type,
 value_type, state_type, value_type,
 boost::numeric::odeint::thrust_algebra,
 boost::numeric::odeint::thrust_operations,
 boost::numeric::odeint::initially_resizer>,
 ErrorChecker=boost::numeric::odeint::default_error_checker<value_type,
 boost::numeric::odeint::thrust_algebra,
 boost::numeric::odeint::thrust_operations>,
 StepAdjuster=boost::numeric::odeint::default_step_adjuster<value_type,
 value_type>, Resizer=boost::numeric::odeint::initially_resizer]" matches
 the argument list
             argument types are: (lorenz_perturbation_system, state_type,
 double, double)
             object type is:
 boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type,
 value_type, state_type, value_type,
 boost::numeric::odeint::thrust_algebra,
 boost::numeric::odeint::thrust_operations,
 boost::numeric::odeint::initially_resizer>,
 boost::numeric::odeint::default_error_checker<value_type,
 boost::numeric::odeint::thrust_algebra,
 boost::numeric::odeint::thrust_operations>,
 boost::numeric::odeint::default_step_adjuster<value_type, value_type>,
 boost::numeric::odeint::initially_resizer,
 boost::numeric::odeint::explicit_error_stepper_fsal_tag>
           detected during:
             instantiation of "size_t
 boost::numeric::odeint::detail::integrate_adaptive(Stepper, System, State
 &, Time &, Time, Time &, Observer,
 boost::numeric::odeint::controlled_stepper_tag) [with
 Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type,
 value_type, state_type, value_type,
 boost::numeric::odeint::thrust_algebra,
 boost::numeric::odeint::thrust_operations,
 boost::numeric::odeint::initially_resizer>,
 boost::numeric::odeint::default_error_checker<value_type,
 boost::numeric::odeint::thrust_algebra,
 boost::numeric::odeint::thrust_operations>,
 boost::numeric::odeint::default_step_adjuster<value_type, value_type>,
 boost::numeric::odeint::initially_resizer,
 boost::numeric::odeint::explicit_error_stepper_fsal_tag>,
 System=lorenz_perturbation_system, State=state_type, Time=double,
 Observer=boost::numeric::odeint::null_observer]"
 /usr/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp(45):
 here
             instantiation of "size_t
 boost::numeric::odeint::integrate_adaptive(Stepper, System, State &, Time,
 Time, Time, Observer) [with
 Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type,
 value_type, state_type, value_type,
 boost::numeric::odeint::thrust_algebra,
 boost::numeric::odeint::thrust_operations,
 boost::numeric::odeint::initially_resizer>,
 boost::numeric::odeint::default_error_checker<value_type,
 boost::numeric::odeint::thrust_algebra,
 boost::numeric::odeint::thrust_operations>,
 boost::numeric::odeint::default_step_adjuster<value_type, value_type>,
 boost::numeric::odeint::initially_resizer,
 boost::numeric::odeint::explicit_error_stepper_fsal_tag>,
 System=lorenz_perturbation_system, State=state_type, Time=double,
 Observer=boost::numeric::odeint::null_observer]"
 /usr/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp(83):
 here
             instantiation of "size_t
 boost::numeric::odeint::integrate_adaptive(Stepper, System, State &, Time,
 Time, Time) [with
 Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type,
 value_type, state_type, value_type,
 boost::numeric::odeint::thrust_algebra,
 boost::numeric::odeint::thrust_operations,
 boost::numeric::odeint::initially_resizer>,
 boost::numeric::odeint::default_error_checker<value_type,
 boost::numeric::odeint::thrust_algebra,
 boost::numeric::odeint::thrust_operations>,
 boost::numeric::odeint::default_step_adjuster<value_type, value_type>,
 boost::numeric::odeint::initially_resizer,
 boost::numeric::odeint::explicit_error_stepper_fsal_tag>,
 System=lorenz_perturbation_system, State=state_type, Time=double]"
 lorenz_parameters.cu(285): here

 lorenz_parameters.cu(43): warning: variable "sigma" was declared but never
 referenced

 lorenz_parameters.cu(44): warning: variable "b" was declared but never
 referenced

 2 errors detected in the compilation of
 "/tmp/tmpxft_00000806_00000000-9_lorenz_parameters.cpp1.ii".
 }}}

 system details:

 * Linux sid 4.6.0-1-amd64 SMP Debian 4.6.4-1 (2016-07-18) x86_64
 GNU/Linux
 * libcuda1 361.45.18-2
 * libthrust-dev 1.8.1-1
 * nvidia-cuda-toolkit 7.5.18-2
    * nvcc V7.5.17
 * libboost1.60-all-dev 1.60.0+dfsg-6
 * gcc:
    * 5.4.0-6
    * 4.9.3-14

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/12382>
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:20 UTC