Ok, so we have this code snippet from the notebook that uses Finch backend:
X = sparse.random((100, 5), density=0.08) # creates COO random matrix
X = sparse.asarray(X, format="csc") # converts to CSC format
X_X = sparse.permute_dims(X, (1, 0)) @ X # for me locally it densifies as the result is: SwizzleArray(Tensor(Dense{Int64}(Dense{Int64}(Element{0.0, Float64, Int64}...
X_X.get_order() # it gives (1, 0) order so I can only convert to CSR.
X_X = sparse.asarray(X_X, format="csr") # move back from dense to CSR format
So it looks like in the CI the result order of permute_dims(X, (1, 0)) @ X is sometimes (0, 1) as it's the only reason for this failure.
While the indeterminism here is definitely an issue, one other issue is that asarray should convert the format if necessary, similar to the order= or dtype= kwargs.
While the indeterminism here is definitely an issue, one other issue is that
asarray
should convert the format if necessary, similar to theorder=
ordtype=
kwargs.Originally posted by @hameerabbasi in https://github.com/pydata/sparse/issues/709#issuecomment-2186224847