Skip to content

Commit 8d3d947

Browse files
committed
Provide more clarity in the rationale.
1 parent f3c406e commit 8d3d947

1 file changed

Lines changed: 6 additions & 4 deletions

File tree

Readme.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@ buf .+= 2 .* A * B
1212
```
1313

1414
## Rationale
15-
I want to do $C \leftarrow D*S$ fast, where $D$ and $S$ are dense and sparse matrices, respectively. However:
15+
I want to do $C \leftarrow C - D \times S$ fast, where $D$ and $S$ are dense and sparse matrices, respectively.
16+
Notice how this is different from $C \leftarrow C - S \times D$, i.e. dense $\times$ sparse vs sparse $\times$ dense.
17+
In particular:
1618
- The SparseArrays.jl package doesn't support threaded multiplication.
17-
- The IntelMKL.jl package doesn't seem to support dense $\cdot$ sparsecsc multiplication, although one can get similar performance using that package and transposing appropriately. It also comes with possible licensing issues and is vendor-specifig.
18-
- The ThreadedSparseCSR.jl package also just supports sparsecsr $\cdot$ dense.
19-
- The ThreadedSparseArrays.jl package also just supports ThreadedSparseMatrixCSC $\cdot$ dense, and also doesn't install for me currently.
19+
- The IntelMKL.jl package doesn't seem to support dense $\times$ sparsecsc multiplication, although one can get similar performance using that package and transposing appropriately. It also comes with possible licensing issues and is vendor-specific.
20+
- The ThreadedSparseCSR.jl package also just supports sparsecsr $\times$ dense.
21+
- The ThreadedSparseArrays.jl package also just supports ThreadedSparseMatrixCSC $\times$ dense, and also doesn't install for me currently.
2022

2123
I haven't found an implementation for that, so made one myself. In fact, the package `Polyester.jl` makes this super easy, the entire code is basically
2224
```julia

0 commit comments

Comments
 (0)