Denis Demidov

Results 316 comments of Denis Demidov

Unfortunately, this is not possible with amgcl. In the library the setup is done completely on the cpu side and the results are then transferred to gpu memory. You can...

Summing of distributed matrices is outside of the library scope. There is an [internal implementation](https://github.com/ddemidov/amgcl/blob/master/amgcl/backend/builtin.hpp#L399-L402) that takes matrices as [amgcl::backend::csr](https://github.com/ddemidov/amgcl/blob/master/amgcl/backend/builtin.hpp#L76-L85), so you could copy your local chunks into `csr`, add...

The setup step in amgcl is always performed on the CPU. When a GPU is used, there is an additional overhead of moving the constructed hierarchy to the GPU memory....

Hey, You should be able to use [amgcl::make_iterator_range](https://github.com/ddemidov/amgcl/blob/8083b23fbe69c43cee0d4bc17e4334572e292c93/amgcl/util.hpp#L253-L256) as in ```cpp for(int i = 0; i < nv; ++i) { auto b = make_iterator_range(&rhss[i*n], &rhss[i*(n+1)]); auto x = make_iterator_range(&xs[i*n], &xs[i*(n+1)]);...

The following works for me: ```cpp #include int main() { std::vector x(10, 1), y(10, 2); auto X = amgcl::make_iterator_range(x.begin(), x.end()); auto Y = amgcl::make_iterator_range(y.begin(), y.end()); // y = x amgcl::backend::copy(X,...

- It should work for cpu-based backends (you can get pointers to the raw data from Eigen vector) - I don't think cuda thrust library has range concept, so its...

amgcl is header only, so you just have to tell the compiler which path it should consider when searching for include files.

EDIT: this is wrong, see comments below. Hi, The matrix in block-valued format (`-b2`) has 26049x26049 size (52098/2), and aggregation expects coordinate matrix with height of 26049/2, which is not...

Thanks for pointing that out, I forgot about this feature! This makes my above response completely irrelevant, sorry. Here is what is really happening: - you are solving a 2D...

When you pass coordinates to form nullspace, you implicitly set the number of equations. When you are not using nullspace vectors, you can set `precond.coarsening.aggr.block_size=2`, which would use pointwize aggregation,...