Open barracuda156 opened 1 year ago
hiop
0.7.1,ginkgo
1.5.0,gcc
12.2.0
@barracuda156, you need to use Ginkgo from the head of glu_experimental
branch. Direct solvers in Ginkgo are under heavy development right now and haven't been included in the official release yet.
@pelesh Thank you, I will try now.
Without sparse backend btw all tests pass – and this is on 10.6.8 for PowerPC! https://github.com/macports/macports-ports/pull/17393
@barracuda156, also see #585.
@pelesh Sorry, I forgot to update. glu_experimental
does not build, and upstream said it will be replaced with other branch: https://github.com/ginkgo-project/ginkgo/issues/1258
Has this been addressed btw?
Has this been addressed btw?
Almost there :). See #669. Direct solvers from glu_experimental
branch have been released in Ginkgo 1.7.
@pelesh As of now, fails for me with Ginkgo 1.7.0: https://github.com/LLNL/hiop/issues/674#issuecomment-1858427644
hiop
1.0.1, ginkgo
1.7.0:
In file included from /opt/local/include/ginkgo/core/base/polymorphic_object.hpp:41,
from /opt/local/include/ginkgo/core/base/abstract_factory.hpp:40,
from /opt/local/include/ginkgo/ginkgo.hpp:40,
from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.hpp:55,
from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:55:
/opt/local/include/ginkgo/core/base/executor.hpp:1532:42: note: declared here
1532 | static std::shared_ptr<CudaExecutor> create(
| ^~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp: In lambda function:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:220:49: warning: 'static std::shared_ptr<gko::HipExecutor> gko::HipExecutor::create(int, std::shared_ptr<gko::Executor>, bool, gko::allocation_mode, CUstream_st*)' is deprecated: device_reset is deprecated entirely, call hipDeviceReset directly. alloc_mode was replaced by the Allocator type hierarchy. [-Wdeprecated-declarations]
220 | return gko::HipExecutor::create(0, gko::ReferenceExecutor::create(),
| ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
221 | true);
| ~~~~~
/opt/local/include/ginkgo/core/base/executor.hpp:1746:41: note: declared here
1746 | static std::shared_ptr<HipExecutor> create(
| ^~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp: In function 'std::shared_ptr<gko::LinOpFactory> hiop::{anonymous}::setup_solver_factory(std::shared_ptr<const gko::Executor>, std::shared_ptr<gko::matrix::Csr<double, int> >, gko::solver::trisolve_algorithm, unsigned int, double, unsigned int)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:239:56: error: 'Mc64' is not a member of 'gko::reorder'; did you mean 'gko::experimental::reorder::Mc64'?
239 | auto preprocessing_fact = gko::share(gko::reorder::Mc64<double, int>::build().on(exec));
| ^~~~
In file included from /opt/local/include/ginkgo/ginkgo.hpp:140:
/opt/local/include/ginkgo/core/reorder/mc64.hpp:105:12: note: 'gko::experimental::reorder::Mc64' declared here
105 | class Mc64 final
| ^~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:239:61: error: expected primary-expression before 'double'
239 | auto preprocessing_fact = gko::share(gko::reorder::Mc64<double, int>::build().on(exec));
| ^~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:239:69: error: expected primary-expression before 'int'
239 | auto preprocessing_fact = gko::share(gko::reorder::Mc64<double, int>::build().on(exec));
| ^~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:241:65: error: 'Glu' is not a member of 'gko::experimental::factorization'
241 | auto lu_fact = gko::share(gko::experimental::factorization::Glu<double, int>::build_reusable()
| ^~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:241:69: error: expected primary-expression before 'double'
241 | auto lu_fact = gko::share(gko::experimental::factorization::Glu<double, int>::build_reusable()
| ^~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:241:77: error: expected primary-expression before 'int'
241 | auto lu_fact = gko::share(gko::experimental::factorization::Glu<double, int>::build_reusable()
| ^~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:264:53: error: 'ScaledReordered' is not a member of 'gko::solver'; did you mean 'gko::experimental::reorder::ScaledReordered'?
264 | auto reusable_factory = gko::share(gko::solver::ScaledReordered<>::build()
| ^~~~~~~~~~~~~~~
In file included from /opt/local/include/ginkgo/ginkgo.hpp:144:
/opt/local/include/ginkgo/core/reorder/scaled_reordered.hpp:72:7: note: 'gko::experimental::reorder::ScaledReordered' declared here
72 | class ScaledReordered
| ^~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:264:69: error: expected primary-expression before '>' token
264 | auto reusable_factory = gko::share(gko::solver::ScaledReordered<>::build()
| ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:264:72: error: '::build' has not been declared
264 | auto reusable_factory = gko::share(gko::solver::ScaledReordered<>::build()
| ^~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp: In member function 'virtual int hiop::hiopLinSolverSymSparseGinkgo::matrixChanged()':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:333:38: error: 'ScaledReordered' is not a member of 'gko::solver'; did you mean 'gko::experimental::reorder::ScaledReordered'?
333 | gko::as<gko::solver::ScaledReordered<>>(
| ^~~~~~~~~~~~~~~
/opt/local/include/ginkgo/core/reorder/scaled_reordered.hpp:72:7: note: 'gko::experimental::reorder::ScaledReordered' declared here
72 | class ScaledReordered
| ^~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:333:38: error: 'ScaledReordered' is not a member of 'gko::solver'; did you mean 'gko::experimental::reorder::ScaledReordered'?
333 | gko::as<gko::solver::ScaledReordered<>>(
| ^~~~~~~~~~~~~~~
/opt/local/include/ginkgo/core/reorder/scaled_reordered.hpp:72:7: note: 'gko::experimental::reorder::ScaledReordered' declared here
72 | class ScaledReordered
| ^~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:333:22: error: parse error in template argument list
333 | gko::as<gko::solver::ScaledReordered<>>(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:334:35: error: 'using std::__shared_ptr_access<gko::LinOp, __gnu_cxx::_S_atomic, false, false>::element_type = class gko::LinOp' {aka 'class gko::LinOp'} has no member named 'get_solver'; did you mean 'get_size'?
334 | gko_solver_)->get_solver())->get_preconditioner()) :
| ^~~~~~~~~~
| get_size
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:336:34: error: 'ScaledReordered' is not a member of 'gko::solver'; did you mean 'gko::experimental::reorder::ScaledReordered'?
336 | gko::as<gko::solver::ScaledReordered<>>(gko_solver_)->get_solver());
| ^~~~~~~~~~~~~~~
/opt/local/include/ginkgo/core/reorder/scaled_reordered.hpp:72:7: note: 'gko::experimental::reorder::ScaledReordered' declared here
72 | class ScaledReordered
| ^~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:336:34: error: 'ScaledReordered' is not a member of 'gko::solver'; did you mean 'gko::experimental::reorder::ScaledReordered'?
336 | gko::as<gko::solver::ScaledReordered<>>(gko_solver_)->get_solver());
| ^~~~~~~~~~~~~~~
/opt/local/include/ginkgo/core/reorder/scaled_reordered.hpp:72:7: note: 'gko::experimental::reorder::ScaledReordered' declared here
72 | class ScaledReordered
| ^~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:336:18: error: parse error in template argument list
336 | gko::as<gko::solver::ScaledReordered<>>(gko_solver_)->get_solver());
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:336:67: error: 'using std::__shared_ptr_access<gko::LinOp, __gnu_cxx::_S_atomic, false, false>::element_type = class gko::LinOp' {aka 'class gko::LinOp'} has no member named 'get_solver'; did you mean 'get_size'?
336 | gko::as<gko::solver::ScaledReordered<>>(gko_solver_)->get_solver());
| ^~~~~~~~~~
| get_size
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_math_hiop/hiop/work/hiop-1.0.1/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:339:56: error: 'gko::experimental::factorization::status' has not been declared
339 | return status == gko::experimental::factorization::status::success ? 0 : -1;
| ^~~~~~
make[2]: *** [src/LinAlg/CMakeFiles/hiopLinAlg.dir/hiopLinSolverSparseGinkgo.cpp.o] Error 1
@pelesh As of now, fails for me with Ginkgo 1.7.0: #674 (comment)
CC @fritzgoebel
Build with
ginkgo
back-end fails:hiop
0.7.1,ginkgo
1.5.0,gcc
12.2.0