# CuSparseMatrixCSC constructor

**URL:** <https://discourse.julialang.org/t/cusparsematrixcsc-constructor/62480>\
**Category:** GPU\
**Created:** [June 6, 2021, 10:20pm UTC](https://discourse.julialang.org/t/cusparsematrixcsc-constructor/62480 "2021-06-06T22:20:46Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![eliassno](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eliassno/32/18917_2.png) [@eliassno](https://discourse.julialang.org/u/eliassno)\
**Post date:** [June 6, 2021, 11:40pm UTC](https://discourse.julialang.org/t/cusparsematrixcsc-constructor/62480/2 "2021-06-06T23:40:58Z")

</div>

This only works for [`sparse` from `SparseArrays`](https://github.com/JuliaLang/julia/blob/master/stdlib/SparseArrays/src/sparsematrix.jl#L732-L799):

```julia
julia> using SparseArrays

julia> sparse(Array(I), Array(J), Array(V), 3, 3)
3×3 SparseMatrixCSC{Float64,Int64} with 2 stored entries:
  [1, 1] = 0.2
  [1, 2] = 0.3

```

You need to convert your coordinate lists (`I` and `J`) to CSC format (`colPtr` and `rowVal`).

```julia
julia> colPtr = CuArray([1, 2, 3, 3]);

julia> rowVal = CuArray([1, 1]);

julia> CUSPARSE.CuSparseMatrixCSC(colPtr, rowVal, V, (3,3))
3×3 CuSparseMatrixCSC{Float64} with 2 stored entries:
  [1, 1] = 0.2
  [1, 2] = 0.3
```

---

_[View the full topic](https://discourse.julialang.org/t/cusparsematrixcsc-constructor/62480)._
