Skip to content

cxx11_non_blocking_thread_pool does not build with AVX512 enabled

Summary

cxx11_non_blocking_thread_pool does not build with AVX512 enabled

Environment

  • Operating System : Windows/Linux
  • Architecture : x86_64
  • Eigen Version : 3.5 (master)
  • Compiler Version : Gcc10.3.0
  • Compile Flags : -O3
  • Vector Extension : AVX512

Steps to reproduce

cmake -DEIGEN_TEST_CXX11=ON -DEIGEN_TEST_AVX512=ON ../eigen
./check.sh cxx11_non_blocking_thread_pool

Relevant logs

Building CXX object unsupported/test/CMakeFiles/cxx11_non_blocking_thread_pool.dir/cxx11_non_blocking_thread_pool.cpp.o
In file included from /usr/include/c++/10/memory:83,
                 from /usr/include/c++/10/thread:44,
                 from /usr/include/c++/10/future:39,
                 from /usr/local/google/home/rmlarsen/eigen/rmlarsen/eigen/unsupported/test/../../test/main.h:54,
                 from /usr/local/google/home/rmlarsen/eigen/rmlarsen/eigen/unsupported/test/cxx11_non_blocking_thread_pool.cpp:12:
/usr/include/c++/10/bits/unique_ptr.h: In instantiation of ‘constexpr std::unique_ptr<_Tp, _Dp>::unique_ptr() [with _Del = std::__future_base::_Result_base::_Deleter; <template-parameter-2-2> = void; _Tp = std::__future_base::_Result_base; _Dp = std::__future_base::_Result_base::_Deleter]’:
/usr/include/c++/10/future:324:77:   required from here
/usr/include/c++/10/bits/unique_ptr.h:270:9: error: no matching function for call to ‘std::__uniq_ptr_data<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter, true, true>::__uniq_ptr_data()’
  270 |  : _M_t()
      |         ^
/usr/include/c++/10/bits/unique_ptr.h:210:40: note: candidate: ‘std::__uniq_ptr_data<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter, true, true>::__uniq_ptr_data(std::__uniq_ptr_impl<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>::pointer) [inherited from std::__uniq_ptr_impl<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>]’
  210 |       using __uniq_ptr_impl<_Tp, _Dp>::__uniq_ptr_impl;
      |                                        ^~~~~~~~~~~~~~~
/usr/include/c++/10/bits/unique_ptr.h:210:40: note:   candidate expects 1 argument, 0 provided
/usr/include/c++/10/bits/unique_ptr.h:210:40: note: candidate: ‘template<class _Del> std::__uniq_ptr_data<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter, true, true>::__uniq_ptr_data(std::__uniq_ptr_impl<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>::pointer, _Del&&) [inherited from std::__uniq_ptr_impl<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>]’
/usr/include/c++/10/bits/unique_ptr.h:210:40: note:   template argument deduction/substitution failed:
/usr/include/c++/10/bits/unique_ptr.h:270:9: note:   candidate expects 2 arguments, 0 provided
  270 |  : _M_t()
      |         ^
/usr/include/c++/10/bits/unique_ptr.h:211:7: note: candidate: ‘std::__uniq_ptr_data<_Tp, _Dp, <anonymous>, <anonymous> >::__uniq_ptr_data(std::__uniq_ptr_data<_Tp, _Dp, <anonymous>, <anonymous> >&&) [with _Tp = std::__future_base::_Result_base; _Dp = std::__future_base::_Result_base::_Deleter; bool <anonymous> = true; bool <anonymous> = true]’
  211 |       __uniq_ptr_data(__uniq_ptr_data&&) = default;
      |       ^~~~~~~~~~~~~~~
/usr/include/c++/10/bits/unique_ptr.h:211:7: note:   candidate expects 1 argument, 0 provided
/usr/include/c++/10/bits/unique_ptr.h: In instantiation of ‘constexpr std::unique_ptr<_Tp, _Dp>::unique_ptr() [with _Del = std::default_delete<Eigen::StlThreadEnvironment::EnvThread>; <template-parameter-2-2> = void; _Tp = Eigen::StlThreadEnvironment::EnvThread; _Dp = std::default_delete<Eigen::StlThreadEnvironment::EnvThread>]’:
/usr/local/google/home/rmlarsen/eigen/rmlarsen/eigen/unsupported/test/../../unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h:231:66:   required from ‘constexpr Eigen::ThreadPoolTempl<Environment>::ThreadData::ThreadData() [with Environment = Eigen::StlThreadEnvironment]’
/usr/local/google/home/rmlarsen/eigen/rmlarsen/eigen/unsupported/test/../../unsupported/Eigen/CXX11/src/util/MaxSizeVector.h:72:7:   required from ‘void Eigen::MaxSizeVector<T>::resize(std::size_t) [with T = Eigen::ThreadPoolTempl<Eigen::StlThreadEnvironment>::ThreadData; std::size_t = long unsigned int]’
/usr/local/google/home/rmlarsen/eigen/rmlarsen/eigen/unsupported/test/../../unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h:56:24:   required from ‘Eigen::ThreadPoolTempl<Environment>::ThreadPoolTempl(int, bool, Environment) [with Environment = Eigen::StlThreadEnvironment]’
/usr/local/google/home/rmlarsen/eigen/rmlarsen/eigen/unsupported/test/cxx11_non_blocking_thread_pool.cpp:30:41:   required from here
/usr/include/c++/10/bits/unique_ptr.h:270:9: error: no matching function for call to ‘std::__uniq_ptr_data<Eigen::StlThreadEnvironment::EnvThread, std::default_delete<Eigen::StlThreadEnvironment::EnvThread>, true, true>::__uniq_ptr_data()’
  270 |  : _M_t()
      |         ^
/usr/include/c++/10/bits/unique_ptr.h:210:40: note: candidate: ‘std::__uniq_ptr_data<Eigen::StlThreadEnvironment::EnvThread, std::default_delete<Eigen::StlThreadEnvironment::EnvThread>, true, true>::__uniq_ptr_data(std::__uniq_ptr_impl<Eigen::StlThreadEnvironment::EnvThread, std::default_delete<Eigen::StlThreadEnvironment::EnvThread> >::pointer) [inherited from std::__uniq_ptr_impl<Eigen::StlThreadEnvironment::EnvThread, std::default_delete<Eigen::StlThreadEnvironment::EnvThread> >]’
  210 |       using __uniq_ptr_impl<_Tp, _Dp>::__uniq_ptr_impl;
      |                                        ^~~~~~~~~~~~~~~
/usr/include/c++/10/bits/unique_ptr.h:210:40: note:   candidate expects 1 argument, 0 provided
/usr/include/c++/10/bits/unique_ptr.h:210:40: note: candidate: ‘template<class _Del> std::__uniq_ptr_data<Eigen::StlThreadEnvironment::EnvThread, std::default_delete<Eigen::StlThreadEnvironment::EnvThread>, true, true>::__uniq_ptr_data(std::__uniq_ptr_impl<Eigen::StlThreadEnvironment::EnvThread, std::default_delete<Eigen::StlThreadEnvironment::EnvThread> >::pointer, _Del&&) [inherited from std::__uniq_ptr_impl<Eigen::StlThreadEnvironment::EnvThread, std::default_delete<Eigen::StlThreadEnvironment::EnvThread> >]’
/usr/include/c++/10/bits/unique_ptr.h:210:40: note:   template argument deduction/substitution failed:
/usr/include/c++/10/bits/unique_ptr.h:270:9: note:   candidate expects 2 arguments, 0 provided
  270 |  : _M_t()
      |         ^
/usr/include/c++/10/bits/unique_ptr.h:211:7: note: candidate: ‘std::__uniq_ptr_data<_Tp, _Dp, <anonymous>, <anonymous> >::__uniq_ptr_data(std::__uniq_ptr_data<_Tp, _Dp, <anonymous>, <anonymous> >&&) [with _Tp = Eigen::StlThreadEnvironment::EnvThread; _Dp = std::default_delete<Eigen::StlThreadEnvironment::EnvThread>; bool <anonymous> = true; bool <anonymous> = true]’
  211 |       __uniq_ptr_data(__uniq_ptr_data&&) = default;
      |       ^~~~~~~~~~~~~~~
/usr/include/c++/10/bits/unique_ptr.h:211:7: note:   candidate expects 1 argument, 0 provided
gmake[3]: *** [unsupported/test/CMakeFiles/cxx11_non_blocking_thread_pool.dir/build.make:82: unsupported/test/CMakeFiles/cxx11_non_blocking_thread_pool.dir/cxx11_non_blocking_thread_pool.cpp.o] Error 1
gmake[2]: *** [CMakeFiles/Makefile2:50709: unsupported/test/CMakeFiles/cxx11_non_blocking_thread_pool.dir/all] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:50716: unsupported/test/CMakeFiles/cxx11_non_blocking_thread_pool.dir/rule] Error 2
gmake: *** [Makefile:21449: cxx11_non_blocking_thread_pool] Error 2