Opened 6 years ago

#12382 new Bugs

nvcc 7.5 unable to compile boost/numeric/odeint example

Reported by: Olaf Pichler <boost.olaf@…> Owned by: Douglas Gregor
Milestone: To Be Determined Component: numeric
Version: Boost 1.60.0 Severity: Problem
Keywords: Cc:

Description

I'm trying to compile the boost example lorenz_parameters.cu referenced by the 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

Change History (0)

Note: See TracTickets for help on using tickets.