Hi,
We got several warnings when linking the source code with the Eigen library.
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h(836): warning: calling a __host__ function from a __host__ __device__ function is not allowed
detected during:
instantiation of "void Eigen::internal::call_assignment_no_alias(Dst &, const Src &, const Func &) [with Dst=Eigen::Matrix<float, 3, 1, 0, 3, 1>, Src=Eigen::Product<Eigen::Matrix<float, 3, 3, 0, 3, 3>, Eigen::Matrix<float, 3, 1, 0, 3, 1>, 0>, Func=Eigen::internal::assign_op<float, float>]"
/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h(732): here
instantiation of "Derived &Eigen::PlainObjectBase<Derived>::_set_noalias(const Eigen::DenseBase<OtherDerived> &) [with Derived=Eigen::Matrix<float, 3, 1, 0, 3, 1>, OtherDerived=Eigen::Product<Eigen::Matrix<float, 3, 3, 0, 3, 3>, Eigen::Matrix<float, 3, 1, 0, 3, 1>, 0>]"
/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h(816): here
instantiation of "void Eigen::PlainObjectBase<Derived>::_init1<T,OtherDerived>(const Eigen::DenseBase<OtherDerived> &) [with Derived=Eigen::Matrix<float, 3, 1, 0, 3, 1>, T=Eigen::Product<Eigen::Matrix<float, 3, 3, 0, 3, 3>, Eigen::Matrix<float, 3, 1, 0, 3, 1>, 0>, OtherDerived=Eigen::Product<Eigen::Matrix<float, 3, 3, 0, 3, 3>, Eigen::Matrix<float, 3, 1, 0, 3, 1>, 0>]"
/usr/include/eigen3/Eigen/src/Core/Matrix.h(294): here
instantiation of "Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::Matrix(const T &) [with _Scalar=float, _Rows=3, _Cols=1, _Options=0, _MaxRows=3, _MaxCols=1, T=Eigen::Product<Eigen::Matrix<float, 3, 3, 0, 3, 3>, Eigen::Matrix<float, 3, 1, 0, 3, 1>, 0>]"
(796): here
instantiation of "void Eigen::internal::call_assignment(Dst &, const Src &, const Func &, Eigen::internal::enable_if<Eigen::internal::evaluator_assume_aliasing<Src, Eigen::internal::evaluator_traits<Src>::Shape>::value, void *>::type) [with Dst=Eigen::Matrix<float, 3, 1, 0, 3, 1>, Src=Eigen::Product<Eigen::Matrix<float, 3, 3, 0, 3, 3>, Eigen::Matrix<float, 3, 1, 0, 3, 1>, 0>, Func=Eigen::internal::assign_op<float, float>]"
(782): here
instantiation of "void Eigen::internal::call_assignment(Dst &, const Src &) [with Dst=Eigen::Matrix<float, 3, 1, 0, 3, 1>, Src=Eigen::Product<Eigen::Matrix<float, 3, 3, 0, 3, 3>, Eigen::Matrix<float, 3, 1, 0, 3, 1>, 0>]"
/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h(714): here
instantiation of "Derived &Eigen::PlainObjectBase<Derived>::_set(const Eigen::DenseBase<OtherDerived> &) [with Derived=Eigen::Matrix<float, 3, 1, 0, 3, 1>, OtherDerived=Eigen::Product<Eigen::Matrix<float, 3, 3, 0, 3, 3>, Eigen::Matrix<float, 3, 1, 0, 3, 1>, 0>]"
/usr/include/eigen3/Eigen/src/Core/Matrix.h(225): here
instantiation of "Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> &Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::operator=(const Eigen::DenseBase<OtherDerived> &) [with _Scalar=float, _Rows=3, _Cols=1, _Options=0, _MaxRows=3, _MaxCols=1, OtherDerived=Eigen::Product<Eigen::Matrix<float, 3, 3, 0, 3, 3>, Eigen::Matrix<float, 3, 1, 0, 3, 1>, 0>]"
eigen_test.cu(15): here
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h(836): warning: calling a __host__ function("Eigen::internal::Assignment< ::Eigen::Matrix<float, (int)3, (int)1, (int)0, (int)3, (int)1> , ::Eigen::Product< ::Eigen::Matrix<float, (int)3, (int)3, (int)0, (int)3, (int)3> , ::Eigen::Matrix<float, (int)3, (int)1, (int)0, (int)3, (int)1> , (int)0> , ::Eigen::internal::assign_op<float, float> , ::Eigen::internal::Dense2Dense, void> ::run( ::Eigen::Matrix<float, (int)3, (int)1, (int)0, (int)3, (int)1> &, const ::Eigen::Product< ::Eigen::Matrix<float, (int)3, (int)3, (int)0, (int)3, (int)3> , ::Eigen::Matrix<float, (int)3, (int)1, (int)0, (int)3, (int)1> , (int)0> &, const ::Eigen::internal::assign_op<float, float> &)") from a __host__ __device__ function("Eigen::internal::call_assignment_no_alias< ::Eigen::Matrix<float, (int)3, (int)1, (int)0, (int)3, (int)1> , ::Eigen::Product< ::Eigen::Matrix<float, (int)3, (int)3, (int)0, (int)3, (int)3> , ::Eigen::Matrix<float, (int)3, (int)1, (int)0, (int)3, (int)1> , (int)0> , ::Eigen::internal::assign_op<float, float> > ") is not allowed
In file included from /usr/include/eigen3/Eigen/Core:257,
from /usr/include/eigen3/Eigen/Dense:1,
from eigen_test.cu:1:
/usr/local/cuda-11.4/bin/../targets/aarch64-linux/include/host_defines.h:54:2: warning: #warning "host_defines.h is an internal header file and must not be used directly. This file will be removed in a future CUDA release. Please use cuda_runtime_api.h or cuda_runtime.h instead." [-Wcpp]
54 | #warning "host_defines.h is an internal header file and must not be used directly. This file will be removed in a future CUDA release. Please use cuda_runtime_api.h or cuda_runtime.h instead."
| ^~~~~~~
/usr/include/eigen3/Eigen/src/Core/util/XprHelper.h(94): warning: __host__ annotation is ignored on a function("no_assignment_operator") that is explicitly defaulted on its first declaration
Do you also see a similar?
If yes, could you check with the Eigen team to see if they support the Jetson platform first?
Thanks.