Comments (3)
Thanks @aprokop for catching and suggesting that. I will work on this.
from kokkos-kernels.
Thanks @mndevec! I guess there should be two options: one where the graph of the product is the product of the graphs, and second where the graph of the product is reduced to ignore known zero values (there may still be unknown zeros as a result of calculations). MueLu is actually interested in both for different scenarios.
from kokkos-kernels.
Going deeper in this, I realize that this might be a bit tricky to do.
Basically, the issue is as follows:
spgemm symbolic functions calculates the sizes of the rows. However, it does not really store the structure.
In the numeric, algorithm works with column-id, and value pairs. Numeric phase returns both column ids and values. This can be avoided, but it does not really optimize the algorithm much, because at any certain point it still has to store id and value pairs for accumulation.
If a value is 0 on the left hand side matrix, we can avoid all multiplications. However, the structure of those rows still need to be inserted. If the algorithm avoids the traversal of those rows on the right hand side matrix, it might produce rows with as follows:
Row:
col1 col2 col3 0 0 0
val1 val2 val3 0 0 0
Would having such a matrix be okay? Basically, the current method cannot avoid this traversals so that it can return the ids of the columns with 0 values as below.
col1 col2 col3 col4 col5 col6
val1 val2 val3 0 0 0
I assume returning rows with missing column ids is not okay. But if it is, we can easily return these rows with missing values. Otherwise, to skip 0 values, we might need to change the algorithm and structure a bit more.
from kokkos-kernels.
Related Issues (20)
- rocSPARSE 3.0.2 for ROCm 6.0 breaking changes HOT 3
- Nightly test failures with cusolver tpl enabled, Cuda.svd_* unit tests HOT 6
- Nightly test failures, Cuda.svd_* and MKL DGEMM HOT 5
- Nightly test failures, builds with gcc/8.3.0 as host compiler: cc1plus: error with KokkosSparse::Impl::Sequential::TrsvWrap<...>::divide HOT 3
- Trilinos nightly failure, Cuda+UVM build, ifpack2/stokhos/sacado interaction in Ifpack2_LocalSparseTriangularSolver_def
- Lapack cuda.gesv_double test failing
- SYCL/PVC: native spmv, spmv_mv fail for complex_double
- Intel/2023.1.0 OpenMP, Serial test failures on SPR HOT 6
- spmv follow on changes: enable/disable deprecated code
- Nightly test failures, Cuda with TPLs, float types, in spiluk HOT 12
- rocm 5.6.0 PR testing build failing - module not found HOT 14
- nested namespace holding kk mkl implementation HOT 1
- Add back special path for 1-column rank-2 bsr spmv
- Nightly test failure, Trilinos builds with intel (icpc): sparse_ioutils "Problem reading HB file test_sparse_ioutils_asym.hb..." HOT 4
- Merge path doesn't zero out NaNs when beta=0 HOT 3
- Nightly build error, intel/2023.1+mkl builds HOT 1
- linker/compiler error during build HOT 13
- Magma and cuBLAS incompatible in unit tests HOT 3
- Integer division by zero error in sparse trsv
- Compilation errors on Vortex from mangling issue with `cher`, `cher2`, `zher`, and `zher2` HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kokkos-kernels.