You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The last line will just error.
It would be great to have support for SparseMatrixCSC{T, N} where T <: Union{Float16, Float32, Float64, Float128}, N <: Union{Int16, Int32, Int64}.
On Sat, Sep 21, 2024 at 10:36 AM Royi ***@***.***> wrote:
See the code below:
mT = SparseMatrixCSC{Float64, int32}(sprand(1_000, 1_000, 0.01));GBMatrix(mT); #<! Error!
The last line will just error.
It would be great to have support for SparseMatrixCSC{T, N} where T <:
Union{Float16, Float32, Float64, Float128}, N <: Union{Int16, Int32,
Int64}.
—
Reply to this email directly, view it on GitHub
<#144>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACG6QV5JJQIF5CO3AGJRULLZXV77TAVCNFSM6AAAAABOTUUN6SVHI2DSMVQWIX3LMV43ASLTON2WKOZSGU2DAMZSGU3DCMY>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
I’ve asked and talked with Tim extensively about it.
It’s maybe more possible now than it used to be, but it would be a very
significant change. Fixing 32 bit indexing in SPQR alone was a ~5k line
diff. This would be closer to ~40k.
And there’s no way to do it in a standards compliant way. We haven’t added
32 bit indices to the standard, although I could push for it. It ends up
being much more valuable for pattern matrices or Boolean than for Float64.
So I can see the value add.
The added value is speed.
The throughput with 32 Bit is twice.
I don't know about GraphBLAS, but for certain in many sparse related algorithms it makes a difference since most of the data to process are indices. So the cache is twice as big effectively, the bandwidth, etc...
As I mentioned it's only valuable when the data type of your values is small, and it's not twice always twice as fast. It depends on the internal representation.
I agree with you, it's very valuable especially as people often deal with smaller types these days. I'll bring it up in committee meetings but I wouldn't expect progress on that front until next year at the earliest.
Activity
rayegun commentedon Sep 21, 2024
RoyiAvital commentedon Sep 21, 2024
Support does not mean change the underlying.
Just support converting it without creating an error.
Even something like that:
Will do.
rayegun commentedon Sep 21, 2024
RoyiAvital commentedon Sep 21, 2024
Is there a real reason not to support
Int32in theccode?Does it mean a lot of work?
Just wonder if there any point in asking for it.
rayegun commentedon Sep 21, 2024
RoyiAvital commentedon Sep 21, 2024
The added value is speed.
The throughput with 32 Bit is twice.
I don't know about GraphBLAS, but for certain in many sparse related algorithms it makes a difference since most of the data to process are indices. So the cache is twice as big effectively, the bandwidth, etc...
rayegun commentedon Sep 21, 2024
As I mentioned it's only valuable when the data type of your values is small, and it's not twice always twice as fast. It depends on the internal representation.
I agree with you, it's very valuable especially as people often deal with smaller types these days. I'll bring it up in committee meetings but I wouldn't expect progress on that front until next year at the earliest.
RoyiAvital commentedon Jan 14, 2026
I think this is not supported in GraphBLAS.
See DrTimothyAldenDavis/GraphBLAS#335.
rayegun commentedon Jan 14, 2026
It is supported now I believe and I can work on the Julia wrapper and get it fully updated within the next two weeks.