Skip to content

Conversation

@dpanfilyonok
Copy link
Collaborator

Proposed Changes

  • Add EWiseAddBatched operation, which allows you to simultaneously add multiple COO matrices
  • Add EWiseAddBatched.fs, MatrixEWiseAddBatchedTests.fs, BenchmarksEWiseAddBatched.fs files
  • Delete old unnecessary files
  • Fix formatting according to code formatting guidelines

Types of changes

What types of changes does your code introduce to GraphBLAS-sharp?

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist

  • Build and tests pass locally
  • I have added tests that prove my fix is effective or that my feature works (if appropriate)
  • I have added necessary documentation (if appropriate)
@dpanfilyonok dpanfilyonok changed the title Ewa fusion EWiseAdd Fusion Sep 19, 2022
isUniqueBitmap.[i] <- 1

if i < indicesBufferLength - 1 && indicesBuffer.[i] = indicesBuffer.[i + 1] then
isUniqueBitmap.[i] <- 0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it cause double access to global memory?

let gid = range.GlobalID0

if gid < indicesBufferLength then
newIndecies.[gid] <- rowsBuffer.[gid] * colsCount + colsBuffer.[gid]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This mapping is not injective. Although, this can cause improper behavior in extremely rare cases

(columns: int [])
(values: 'a [])
: GraphblasEvaluation<Matrix<'a>> =
: GraphblasEvaluation<Mat<'a>> =
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is Mat? Why not Matrix? If we really need new name for matrix, Mtx looks better.

let! lowerTriangular =
matrix
|> Matrix.select (UnaryOp <@ fun (i, j, _) -> i <= j @>)
let sandia (matrix: Mat<bool>) = graphblas {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it work? What about performance?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants