-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Closed as duplicate
Closed as duplicate
Copy link
Labels
buildbuild issues; typically submitted using templatebuild issues; typically submitted using template
Description
Describe the issue
OS : Kubuntu 24.04
Compiler: g++ (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
Arch: x86_64
Onnxruntime version: v1.21.0
Passing the -mf16c flag make the build fail. Using this flag enable the use of the x86_64 instruction for fp32<->fp16 conversion instructions, it's used internally by Eigen.
Urgency
Not quite urgent, but user relying on hardware compatible with the instruction might not be able to update their onnxruntime version.
Target platform
x86_64
Build script
./build.sh --parallel 0 --skip_tests --cmake_extra_defines 'CMAKE_CXX_FLAG=-mf16c' --config Release
Error / output
Here is the detailed error output
In file included from /usr/lib/gcc/x86_64-linux-gnu/13/include/pmmintrin.h:31,
from /usr/include/x86_64-linux-gnu/c++/13/bits/opt_random.h:34,
from /usr/include/c++/13/random:52,
from /foo/onnxruntime/build/Release/_deps/abseil_cpp-src/absl/algorithm/container.h:47,
from /foo/onnxruntime/build/Release/_deps/abseil_cpp-src/absl/container/flat_hash_map.h:40,
from /foo/onnxruntime/build/Release/_deps/abseil_cpp-src/absl/flags/reflection.h:29,
from /foo/onnxruntime/build/Release/_deps/googletest-src/googletest/include/gtest/internal/gtest-port.h:343,
from /foo/onnxruntime/build/Release/_deps/googletest-src/googlemock/include/gmock/internal/gmock-port.h:57,
from /foo/onnxruntime/build/Release/_deps/googletest-src/googlemock/include/gmock/internal/gmock-internal-utils.h:50,
from /foo/onnxruntime/build/Release/_deps/googletest-src/googlemock/include/gmock/gmock-actions.h:146,
from /foo/onnxruntime/build/Release/_deps/googletest-src/googlemock/include/gmock/gmock.h:56,
from /foo/onnxruntime/onnxruntime/test/providers/cpu/math/topk_op_test.cc:4:
In function ‘void _mm_store_si128(__m128i*, __m128i)’,
inlined from ‘void Eigen::internal::pstore(Scalar*, const Packet&) [with Scalar = Eigen::half; Packet = eigen_packet_wrapper<__vector(2) long long int, 2>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/arch/AVX/PacketMath.h:2238:18,
inlined from ‘void Eigen::internal::pstoret(Scalar*, const Packet&) [with Scalar = Eigen::half; Packet = eigen_packet_wrapper<__vector(2) long long int, 2>; int Alignment = 16]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/GenericPacketMath.h:1357:11,
inlined from ‘void Eigen::internal::assign_op<DstScalar, SrcScalar>::assignPacket(DstScalar*, const Packet&) const [with int Alignment = 16; Packet = Eigen::internal::eigen_packet_wrapper<__vector(2) long long int, 2>; DstScalar = Eigen::half; SrcScalar = Eigen::half]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/functors/AssignmentFunctors.h:30:52,
inlined from ‘void Eigen::internal::generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, Functor, Version>::assignPacket(Eigen::Index) [with int StoreMode = 16; int LoadMode = 0; Packet = Eigen::internal::eigen_packet_wrapper<__vector(2) long long int, 2>; DstEvaluatorTypeT = Eigen::internal::evaluator<Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> > >; SrcEvaluatorTypeT = Eigen::internal::evaluator<Eigen::CwiseUnaryOp<Eigen::internal::core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > > >; Functor = Eigen::internal::assign_op<Eigen::half, Eigen::half>; int Version = 0]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:609:47,
inlined from ‘static constexpr void Eigen::internal::dense_assignment_loop<Kernel, 3, 0>::run(Kernel&) [with Kernel = Eigen::internal::generic_dense_assignment_kernel<Eigen::internal::evaluator<Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> > >, Eigen::internal::evaluator<Eigen::CwiseUnaryOp<Eigen::internal::core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > > >, Eigen::internal::assign_op<Eigen::half, Eigen::half>, 0>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:399:75,
inlined from ‘constexpr void Eigen::internal::call_dense_assignment_loop(DstXprType&, const SrcXprType&, const Functor&) [with DstXprType = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; SrcXprType = Eigen::CwiseUnaryOp<core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Functor = assign_op<Eigen::half, Eigen::half>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:705:37,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, SrcXprType, Functor, Eigen::internal::Dense2Dense, Weak>::run(DstXprType&, const SrcXprType&, const Functor&) [with DstXprType = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; SrcXprType = Eigen::CwiseUnaryOp<Eigen::internal::core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Functor = Eigen::internal::assign_op<Eigen::half, Eigen::half>; Weak = void]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:855:31,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; Src = Eigen::CwiseUnaryOp<core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Func = assign_op<Eigen::half, Eigen::half>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:797:51,
inlined from ‘void Eigen::internal::call_assignment(Dst&, const Src&, const Func&, std::enable_if_t<(! evaluator_assume_aliasing<Src>::value), void*>) [with Dst = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; Src = Eigen::CwiseUnaryOp<core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Func = assign_op<Eigen::half, Eigen::half>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:768:27,
inlined from ‘void Eigen::internal::call_assignment(Dst&, const Src&) [with Dst = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; Src = Eigen::CwiseUnaryOp<core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:750:18,
inlined from ‘Derived& Eigen::MatrixBase<Derived>::operator=(const Eigen::DenseBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseUnaryOp<Eigen::internal::core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Derived = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/Assign.h:59:28,
inlined from ‘void onnxruntime::test::ConvertFloatToMLFloat16(const float*, onnxruntime::MLFloat16*, size_t)’ at /foo/onnxruntime/onnxruntime/test/providers/provider_test_utils.h:15:56,
inlined from ‘virtual void onnxruntime::test::TopKOperator_NthElementHalf_NegtiveVals_Test::TestBody()’ at /foo/onnxruntime/onnxruntime/test/providers/cpu/math/topk_op_test.cc:675:26:
/usr/lib/gcc/x86_64-linux-gnu/13/include/emmintrin.h:736:8: error: array subscript ‘__m128i[0]’ is partly outside array bounds of ‘unsigned char [8]’ [-Werror=array-bounds=]
736 | *__P = __B;
| ~~~~~^~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/13/bits/c++allocator.h:33,
from /usr/include/c++/13/bits/allocator.h:46,
from /usr/include/c++/13/bits/alloc_traits.h:39,
from /usr/include/c++/13/ext/alloc_traits.h:34,
from /usr/include/c++/13/bits/hashtable_policy.h:39,
from /usr/include/c++/13/bits/hashtable.h:35,
from /usr/include/c++/13/bits/unordered_map.h:33,
from /usr/include/c++/13/unordered_map:41,
from /usr/include/c++/13/functional:63,
from /foo/onnxruntime/build/Release/_deps/googletest-src/googlemock/include/gmock/gmock-actions.h:139:
In member function ‘_Tp* std::__new_allocator<_Tp>::allocate(size_type, const void*) [with _Tp = onnxruntime::MLFloat16]’,
inlined from ‘static _Tp* std::allocator_traits<std::allocator<_Tp1> >::allocate(allocator_type&, size_type) [with _Tp = onnxruntime::MLFloat16]’ at /usr/include/c++/13/bits/alloc_traits.h:482:28,
inlined from ‘std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp = onnxruntime::MLFloat16; _Alloc = std::allocator<onnxruntime::MLFloat16>]’ at /usr/include/c++/13/bits/stl_vector.h:381:33,
inlined from ‘void std::_Vector_base<_Tp, _Alloc>::_M_create_storage(std::size_t) [with _Tp = onnxruntime::MLFloat16; _Alloc = std::allocator<onnxruntime::MLFloat16>]’ at /usr/include/c++/13/bits/stl_vector.h:398:44,
inlined from ‘std::_Vector_base<_Tp, _Alloc>::_Vector_base(std::size_t, const allocator_type&) [with _Tp = onnxruntime::MLFloat16; _Alloc = std::allocator<onnxruntime::MLFloat16>]’ at /usr/include/c++/13/bits/stl_vector.h:335:26,
inlined from ‘std::vector<_Tp, _Alloc>::vector(size_type, const allocator_type&) [with _Tp = onnxruntime::MLFloat16; _Alloc = std::allocator<onnxruntime::MLFloat16>]’ at /usr/include/c++/13/bits/stl_vector.h:557:47,
inlined from ‘virtual void onnxruntime::test::TopKOperator_NthElementHalf_NegtiveVals_Test::TestBody()’ at /foo/onnxruntime/onnxruntime/test/providers/cpu/math/topk_op_test.cc:673:41:
/usr/include/c++/13/bits/new_allocator.h:151:55: note: at offset [0, 6] into object of size 8 allocated by ‘operator new’
151 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp)));
| ^
In function ‘void _mm_store_si128(__m128i*, __m128i)’,
inlined from ‘void Eigen::internal::pstore(Scalar*, const Packet&) [with Scalar = Eigen::half; Packet = eigen_packet_wrapper<__vector(2) long long int, 2>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/arch/AVX/PacketMath.h:2238:18,
inlined from ‘void Eigen::internal::pstoret(Scalar*, const Packet&) [with Scalar = Eigen::half; Packet = eigen_packet_wrapper<__vector(2) long long int, 2>; int Alignment = 16]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/GenericPacketMath.h:1357:11,
inlined from ‘void Eigen::internal::assign_op<DstScalar, SrcScalar>::assignPacket(DstScalar*, const Packet&) const [with int Alignment = 16; Packet = Eigen::internal::eigen_packet_wrapper<__vector(2) long long int, 2>; DstScalar = Eigen::half; SrcScalar = Eigen::half]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/functors/AssignmentFunctors.h:30:52,
inlined from ‘void Eigen::internal::generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, Functor, Version>::assignPacket(Eigen::Index) [with int StoreMode = 16; int LoadMode = 0; Packet = Eigen::internal::eigen_packet_wrapper<__vector(2) long long int, 2>; DstEvaluatorTypeT = Eigen::internal::evaluator<Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> > >; SrcEvaluatorTypeT = Eigen::internal::evaluator<Eigen::CwiseUnaryOp<Eigen::internal::core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > > >; Functor = Eigen::internal::assign_op<Eigen::half, Eigen::half>; int Version = 0]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:609:47,
inlined from ‘static constexpr void Eigen::internal::dense_assignment_loop<Kernel, 3, 0>::run(Kernel&) [with Kernel = Eigen::internal::generic_dense_assignment_kernel<Eigen::internal::evaluator<Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> > >, Eigen::internal::evaluator<Eigen::CwiseUnaryOp<Eigen::internal::core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > > >, Eigen::internal::assign_op<Eigen::half, Eigen::half>, 0>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:399:75,
inlined from ‘constexpr void Eigen::internal::call_dense_assignment_loop(DstXprType&, const SrcXprType&, const Functor&) [with DstXprType = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; SrcXprType = Eigen::CwiseUnaryOp<core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Functor = assign_op<Eigen::half, Eigen::half>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:705:37,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, SrcXprType, Functor, Eigen::internal::Dense2Dense, Weak>::run(DstXprType&, const SrcXprType&, const Functor&) [with DstXprType = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; SrcXprType = Eigen::CwiseUnaryOp<Eigen::internal::core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Functor = Eigen::internal::assign_op<Eigen::half, Eigen::half>; Weak = void]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:855:31,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; Src = Eigen::CwiseUnaryOp<core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Func = assign_op<Eigen::half, Eigen::half>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:797:51,
inlined from ‘void Eigen::internal::call_assignment(Dst&, const Src&, const Func&, std::enable_if_t<(! evaluator_assume_aliasing<Src>::value), void*>) [with Dst = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; Src = Eigen::CwiseUnaryOp<core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Func = assign_op<Eigen::half, Eigen::half>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:768:27,
inlined from ‘void Eigen::internal::call_assignment(Dst&, const Src&) [with Dst = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; Src = Eigen::CwiseUnaryOp<core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:750:18,
inlined from ‘Derived& Eigen::MatrixBase<Derived>::operator=(const Eigen::DenseBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseUnaryOp<Eigen::internal::core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Derived = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/Assign.h:59:28,
inlined from ‘void onnxruntime::test::ConvertFloatToMLFloat16(const float*, onnxruntime::MLFloat16*, size_t)’ at /foo/onnxruntime/onnxruntime/test/providers/provider_test_utils.h:15:56,
inlined from ‘virtual void onnxruntime::test::TopKOperator_NthElementHalf_NegtiveVals_Test::TestBody()’ at /foo/onnxruntime/onnxruntime/test/providers/cpu/math/topk_op_test.cc:674:26:
/usr/lib/gcc/x86_64-linux-gnu/13/include/emmintrin.h:736:8: error: array subscript ‘__m128i[0]’ is partly outside array bounds of ‘unsigned char [12]’ [-Werror=array-bounds=]
736 | *__P = __B;
| ~~~~~^~~~~
In member function ‘_Tp* std::__new_allocator<_Tp>::allocate(size_type, const void*) [with _Tp = onnxruntime::MLFloat16]’,
inlined from ‘static _Tp* std::allocator_traits<std::allocator<_Tp1> >::allocate(allocator_type&, size_type) [with _Tp = onnxruntime::MLFloat16]’ at /usr/include/c++/13/bits/alloc_traits.h:482:28,
inlined from ‘std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp = onnxruntime::MLFloat16; _Alloc = std::allocator<onnxruntime::MLFloat16>]’ at /usr/include/c++/13/bits/stl_vector.h:381:33,
inlined from ‘void std::_Vector_base<_Tp, _Alloc>::_M_create_storage(std::size_t) [with _Tp = onnxruntime::MLFloat16; _Alloc = std::allocator<onnxruntime::MLFloat16>]’ at /usr/include/c++/13/bits/stl_vector.h:398:44,
inlined from ‘std::_Vector_base<_Tp, _Alloc>::_Vector_base(std::size_t, const allocator_type&) [with _Tp = onnxruntime::MLFloat16; _Alloc = std::allocator<onnxruntime::MLFloat16>]’ at /usr/include/c++/13/bits/stl_vector.h:335:26,
inlined from ‘std::vector<_Tp, _Alloc>::vector(size_type, const allocator_type&) [with _Tp = onnxruntime::MLFloat16; _Alloc = std::allocator<onnxruntime::MLFloat16>]’ at /usr/include/c++/13/bits/stl_vector.h:557:47,
inlined from ‘virtual void onnxruntime::test::TopKOperator_NthElementHalf_NegtiveVals_Test::TestBody()’ at /foo/onnxruntime/onnxruntime/test/providers/cpu/math/topk_op_test.cc:672:38:
/usr/include/c++/13/bits/new_allocator.h:151:55: note: at offset [0, 10] into object of size 12 allocated by ‘operator new’
151 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp)));
| ^
In function ‘void _mm_store_si128(__m128i*, __m128i)’,
inlined from ‘void Eigen::internal::pstore(Scalar*, const Packet&) [with Scalar = Eigen::half; Packet = eigen_packet_wrapper<__vector(2) long long int, 2>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/arch/AVX/PacketMath.h:2238:18,
inlined from ‘void Eigen::internal::pstoret(Scalar*, const Packet&) [with Scalar = Eigen::half; Packet = eigen_packet_wrapper<__vector(2) long long int, 2>; int Alignment = 16]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/GenericPacketMath.h:1357:11,
inlined from ‘void Eigen::internal::assign_op<DstScalar, SrcScalar>::assignPacket(DstScalar*, const Packet&) const [with int Alignment = 16; Packet = Eigen::internal::eigen_packet_wrapper<__vector(2) long long int, 2>; DstScalar = Eigen::half; SrcScalar = Eigen::half]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/functors/AssignmentFunctors.h:30:52,
inlined from ‘void Eigen::internal::generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, Functor, Version>::assignPacket(Eigen::Index) [with int StoreMode = 16; int LoadMode = 0; Packet = Eigen::internal::eigen_packet_wrapper<__vector(2) long long int, 2>; DstEvaluatorTypeT = Eigen::internal::evaluator<Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> > >; SrcEvaluatorTypeT = Eigen::internal::evaluator<Eigen::CwiseUnaryOp<Eigen::internal::core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > > >; Functor = Eigen::internal::assign_op<Eigen::half, Eigen::half>; int Version = 0]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:609:47,
inlined from ‘static constexpr void Eigen::internal::dense_assignment_loop<Kernel, 3, 0>::run(Kernel&) [with Kernel = Eigen::internal::generic_dense_assignment_kernel<Eigen::internal::evaluator<Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> > >, Eigen::internal::evaluator<Eigen::CwiseUnaryOp<Eigen::internal::core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > > >, Eigen::internal::assign_op<Eigen::half, Eigen::half>, 0>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:399:75,
inlined from ‘constexpr void Eigen::internal::call_dense_assignment_loop(DstXprType&, const SrcXprType&, const Functor&) [with DstXprType = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; SrcXprType = Eigen::CwiseUnaryOp<core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Functor = assign_op<Eigen::half, Eigen::half>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:705:37,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, SrcXprType, Functor, Eigen::internal::Dense2Dense, Weak>::run(DstXprType&, const SrcXprType&, const Functor&) [with DstXprType = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; SrcXprType = Eigen::CwiseUnaryOp<Eigen::internal::core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Functor = Eigen::internal::assign_op<Eigen::half, Eigen::half>; Weak = void]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:855:31,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; Src = Eigen::CwiseUnaryOp<core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Func = assign_op<Eigen::half, Eigen::half>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:797:51,
inlined from ‘void Eigen::internal::call_assignment(Dst&, const Src&, const Func&, std::enable_if_t<(! evaluator_assume_aliasing<Src>::value), void*>) [with Dst = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; Src = Eigen::CwiseUnaryOp<core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Func = assign_op<Eigen::half, Eigen::half>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:768:27,
inlined from ‘void Eigen::internal::call_assignment(Dst&, const Src&) [with Dst = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; Src = Eigen::CwiseUnaryOp<core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:750:18,
inlined from ‘Derived& Eigen::MatrixBase<Derived>::operator=(const Eigen::DenseBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseUnaryOp<Eigen::internal::core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Derived = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/Assign.h:59:28,
inlined from ‘void onnxruntime::test::ConvertFloatToMLFloat16(const float*, onnxruntime::MLFloat16*, size_t)’ at /foo/onnxruntime/onnxruntime/test/providers/provider_test_utils.h:15:56,
inlined from ‘virtual void onnxruntime::test::TopKOperator_NthElementHalf_Test::TestBody()’ at /foo/onnxruntime/onnxruntime/test/providers/cpu/math/topk_op_test.cc:658:26:
/usr/lib/gcc/x86_64-linux-gnu/13/include/emmintrin.h:736:8: error: array subscript ‘__m128i[0]’ is partly outside array bounds of ‘unsigned char [8]’ [-Werror=array-bounds=]
736 | *__P = __B;
| ~~~~~^~~~~
In member function ‘_Tp* std::__new_allocator<_Tp>::allocate(size_type, const void*) [with _Tp = onnxruntime::MLFloat16]’,
inlined from ‘static _Tp* std::allocator_traits<std::allocator<_Tp1> >::allocate(allocator_type&, size_type) [with _Tp = onnxruntime::MLFloat16]’ at /usr/include/c++/13/bits/alloc_traits.h:482:28,
inlined from ‘std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp = onnxruntime::MLFloat16; _Alloc = std::allocator<onnxruntime::MLFloat16>]’ at /usr/include/c++/13/bits/stl_vector.h:381:33,
inlined from ‘void std::_Vector_base<_Tp, _Alloc>::_M_create_storage(std::size_t) [with _Tp = onnxruntime::MLFloat16; _Alloc = std::allocator<onnxruntime::MLFloat16>]’ at /usr/include/c++/13/bits/stl_vector.h:398:44,
inlined from ‘std::_Vector_base<_Tp, _Alloc>::_Vector_base(std::size_t, const allocator_type&) [with _Tp = onnxruntime::MLFloat16; _Alloc = std::allocator<onnxruntime::MLFloat16>]’ at /usr/include/c++/13/bits/stl_vector.h:335:26,
inlined from ‘std::vector<_Tp, _Alloc>::vector(size_type, const allocator_type&) [with _Tp = onnxruntime::MLFloat16; _Alloc = std::allocator<onnxruntime::MLFloat16>]’ at /usr/include/c++/13/bits/stl_vector.h:557:47,
inlined from ‘virtual void onnxruntime::test::TopKOperator_NthElementHalf_Test::TestBody()’ at /foo/onnxruntime/onnxruntime/test/providers/cpu/math/topk_op_test.cc:656:41:
/usr/include/c++/13/bits/new_allocator.h:151:55: note: at offset [0, 6] into object of size 8 allocated by ‘operator new’
151 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp)));
| ^
In function ‘void _mm_store_si128(__m128i*, __m128i)’,
inlined from ‘void Eigen::internal::pstore(Scalar*, const Packet&) [with Scalar = Eigen::half; Packet = eigen_packet_wrapper<__vector(2) long long int, 2>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/arch/AVX/PacketMath.h:2238:18,
inlined from ‘void Eigen::internal::pstoret(Scalar*, const Packet&) [with Scalar = Eigen::half; Packet = eigen_packet_wrapper<__vector(2) long long int, 2>; int Alignment = 16]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/GenericPacketMath.h:1357:11,
inlined from ‘void Eigen::internal::assign_op<DstScalar, SrcScalar>::assignPacket(DstScalar*, const Packet&) const [with int Alignment = 16; Packet = Eigen::internal::eigen_packet_wrapper<__vector(2) long long int, 2>; DstScalar = Eigen::half; SrcScalar = Eigen::half]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/functors/AssignmentFunctors.h:30:52,
inlined from ‘void Eigen::internal::generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, Functor, Version>::assignPacket(Eigen::Index) [with int StoreMode = 16; int LoadMode = 0; Packet = Eigen::internal::eigen_packet_wrapper<__vector(2) long long int, 2>; DstEvaluatorTypeT = Eigen::internal::evaluator<Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> > >; SrcEvaluatorTypeT = Eigen::internal::evaluator<Eigen::CwiseUnaryOp<Eigen::internal::core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > > >; Functor = Eigen::internal::assign_op<Eigen::half, Eigen::half>; int Version = 0]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:609:47,
inlined from ‘static constexpr void Eigen::internal::dense_assignment_loop<Kernel, 3, 0>::run(Kernel&) [with Kernel = Eigen::internal::generic_dense_assignment_kernel<Eigen::internal::evaluator<Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> > >, Eigen::internal::evaluator<Eigen::CwiseUnaryOp<Eigen::internal::core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > > >, Eigen::internal::assign_op<Eigen::half, Eigen::half>, 0>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:399:75,
inlined from ‘constexpr void Eigen::internal::call_dense_assignment_loop(DstXprType&, const SrcXprType&, const Functor&) [with DstXprType = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; SrcXprType = Eigen::CwiseUnaryOp<core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Functor = assign_op<Eigen::half, Eigen::half>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:705:37,
inlined from ‘static void Eigen::internal::Assignment<DstXprType, SrcXprType, Functor, Eigen::internal::Dense2Dense, Weak>::run(DstXprType&, const SrcXprType&, const Functor&) [with DstXprType = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; SrcXprType = Eigen::CwiseUnaryOp<Eigen::internal::core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Functor = Eigen::internal::assign_op<Eigen::half, Eigen::half>; Weak = void]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:855:31,
inlined from ‘constexpr void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; Src = Eigen::CwiseUnaryOp<core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Func = assign_op<Eigen::half, Eigen::half>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:797:51,
inlined from ‘void Eigen::internal::call_assignment(Dst&, const Src&, const Func&, std::enable_if_t<(! evaluator_assume_aliasing<Src>::value), void*>) [with Dst = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; Src = Eigen::CwiseUnaryOp<core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Func = assign_op<Eigen::half, Eigen::half>]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:768:27,
inlined from ‘void Eigen::internal::call_assignment(Dst&, const Src&) [with Dst = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >; Src = Eigen::CwiseUnaryOp<core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/AssignEvaluator.h:750:18,
inlined from ‘Derived& Eigen::MatrixBase<Derived>::operator=(const Eigen::DenseBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseUnaryOp<Eigen::internal::core_cast_op<float, Eigen::half>, const Eigen::Map<const Eigen::Matrix<float, -1, 1>, 0, Eigen::Stride<0, 0> > >; Derived = Eigen::Map<Eigen::Matrix<Eigen::half, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >]’ at /foo/onnxruntime/build/Release/_deps/eigen-src/Eigen/src/Core/Assign.h:59:28,
inlined from ‘void onnxruntime::test::ConvertFloatToMLFloat16(const float*, onnxruntime::MLFloat16*, size_t)’ at /foo/onnxruntime/onnxruntime/test/providers/provider_test_utils.h:15:56,
inlined from ‘virtual void onnxruntime::test::TopKOperator_NthElementHalf_Test::TestBody()’ at /foo/onnxruntime/onnxruntime/test/providers/cpu/math/topk_op_test.cc:657:26:
/usr/lib/gcc/x86_64-linux-gnu/13/include/emmintrin.h:736:8: error: array subscript ‘__m128i[0]’ is partly outside array bounds of ‘unsigned char [12]’ [-Werror=array-bounds=]
736 | *__P = __B;
| ~~~~~^~~~~
In member function ‘_Tp* std::__new_allocator<_Tp>::allocate(size_type, const void*) [with _Tp = onnxruntime::MLFloat16]’,
inlined from ‘static _Tp* std::allocator_traits<std::allocator<_Tp1> >::allocate(allocator_type&, size_type) [with _Tp = onnxruntime::MLFloat16]’ at /usr/include/c++/13/bits/alloc_traits.h:482:28,
inlined from ‘std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp = onnxruntime::MLFloat16; _Alloc = std::allocator<onnxruntime::MLFloat16>]’ at /usr/include/c++/13/bits/stl_vector.h:381:33,
inlined from ‘void std::_Vector_base<_Tp, _Alloc>::_M_create_storage(std::size_t) [with _Tp = onnxruntime::MLFloat16; _Alloc = std::allocator<onnxruntime::MLFloat16>]’ at /usr/include/c++/13/bits/stl_vector.h:398:44,
inlined from ‘std::_Vector_base<_Tp, _Alloc>::_Vector_base(std::size_t, const allocator_type&) [with _Tp = onnxruntime::MLFloat16; _Alloc = std::allocator<onnxruntime::MLFloat16>]’ at /usr/include/c++/13/bits/stl_vector.h:335:26,
inlined from ‘std::vector<_Tp, _Alloc>::vector(size_type, const allocator_type&) [with _Tp = onnxruntime::MLFloat16; _Alloc = std::allocator<onnxruntime::MLFloat16>]’ at /usr/include/c++/13/bits/stl_vector.h:557:47,
inlined from ‘virtual void onnxruntime::test::TopKOperator_NthElementHalf_Test::TestBody()’ at /foo/onnxruntime/onnxruntime/test/providers/cpu/math/topk_op_test.cc:655:38:
/usr/include/c++/13/bits/new_allocator.h:151:55: note: at offset [0, 10] into object of size 12 allocated by ‘operator new’
151 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp)));
|
Visual Studio Version
No response
GCC / Compiler Version
13.3.0
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
buildbuild issues; typically submitted using templatebuild issues; typically submitted using template