@@ -614,8 +614,9 @@ class SymbolicLuNearSymmOperation : public BenchmarkOperation {
614614
615615class SymbolicCholeskyOperation : public BenchmarkOperation {
616616public:
617- explicit SymbolicCholeskyOperation (const Mtx* mtx, bool symmetric)
618- : mtx_{mtx}, symmetric_{symmetric}, result_{}
617+ explicit SymbolicCholeskyOperation (const Mtx* mtx, bool device,
618+ bool symmetric)
619+ : mtx_{mtx}, device_{device}, symmetric_{symmetric}, result_{}
619620 {}
620621
621622 std::pair<bool , double > validate () const override
@@ -643,8 +644,13 @@ class SymbolicCholeskyOperation : public BenchmarkOperation {
643644
644645 void run () override
645646 {
646- gko::factorization::symbolic_cholesky (mtx_, symmetric_, result_,
647- forest_);
647+ if (device_) {
648+ gko::factorization::symbolic_cholesky_device (mtx_, symmetric_,
649+ result_, forest_);
650+ } else {
651+ gko::factorization::symbolic_cholesky (mtx_, symmetric_, result_,
652+ forest_);
653+ }
648654 }
649655
650656 void write_stats (json& object) override
@@ -654,6 +660,7 @@ class SymbolicCholeskyOperation : public BenchmarkOperation {
654660
655661private:
656662 const Mtx* mtx_;
663+ bool device_;
657664 bool symmetric_;
658665 std::unique_ptr<Mtx> result_;
659666 std::unique_ptr<gko::factorization::elimination_forest<itype>> forest_;
@@ -791,13 +798,25 @@ const std::map<std::string,
791798 [](const Mtx* mtx) {
792799 return std::make_unique<SymbolicLuNearSymmOperation>(mtx);
793800 }},
801+ {" symbolic_cholesky_device" ,
802+ [](const Mtx* mtx) {
803+ return std::make_unique<SymbolicCholeskyOperation>(mtx, true ,
804+ false );
805+ }},
806+ {" symbolic_cholesky_device_symmetric" ,
807+ [](const Mtx* mtx) {
808+ return std::make_unique<SymbolicCholeskyOperation>(mtx, true ,
809+ true );
810+ }},
794811 {" symbolic_cholesky" ,
795812 [](const Mtx* mtx) {
796- return std::make_unique<SymbolicCholeskyOperation>(mtx, false );
813+ return std::make_unique<SymbolicCholeskyOperation>(mtx, false ,
814+ false );
797815 }},
798816 {" symbolic_cholesky_symmetric" ,
799817 [](const Mtx* mtx) {
800- return std::make_unique<SymbolicCholeskyOperation>(mtx, true );
818+ return std::make_unique<SymbolicCholeskyOperation>(mtx, false ,
819+ true );
801820 }},
802821 {" reorder_rcm" ,
803822 [](const Mtx* mtx) {
0 commit comments