Giter VIP home page Giter VIP logo

yaccconstructor / graphblas-sharp Goto Github PK

View Code? Open in Web Editor NEW
3.0 13.0 6.0 16.89 MB

GPGPU-based GraphBLAS-like API implementation in F# (using Brahma.FSharp and OpenCL)

Home Page: https://yaccconstructor.github.io/GraphBLAS-sharp/

License: MIT License

Dockerfile 0.12% Batchfile 0.01% F# 98.20% Shell 0.10% JavaScript 0.51% CSS 0.88% Python 0.18%
dotnet fsharp gpu graph-algorithms linear-algebra sparse-linear-algebra sparse-matrix graphblas matrix

graphblas-sharp's Introduction

Issue Stats Issue Stats Repository Size YaccConstructor

Platform for parser generators and other grammarware research and development. GLL, RNGLR, graph parsing algorithms, and many others are included.

Build status:

Branch .NET Mono
Master Master build status Build Status
Dev Dev build status Build Status
GLL-FSA GLL-FSA build status Build Status

Packages:

Package
YC.SDK NuGet Status
YC.SDK.Runtime NuGet Status

Develop

  • Read code style
  • We use git lfs, so install it first.
  • Get sources. We use submodules, so use git clone --recursive
  • Run build.cmd to perform initial build.
  • Use MS VS 2015 to develop. Main solution is YaccConstructor.sln. You can create your own solutions.

Maintainer(s)

graphblas-sharp's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

graphblas-sharp's Issues

ClArray.copy failed on float arrays

Describe the bug
ClArray.copy failed on float arrays. Problem with nan support:

Failed after 11 tests. Parameters:
	[|-1.797693135e+308; nan; -0.0; -0.0; 0.0; 0.1008751652; 4.534974708; 0.0;
  -1.797693135e+308|]
Shrunk 8 times to:
	[|nan|]
Result:
	Exception
  Expecto.AssertException: Array should be equals to original. Sequence does not match at position 0. Expected item: nan, but got nan.
expected:   [0] nan
  actual:   [0] nan
   at [email protected](String msg)
   at Expecto.Expect.sequenceEqual[a](IEnumerable`1 actual, IEnumerable`1 expected, String message)
   at [email protected](FSharpFunc`2 getCopyFun, a[] array) in /home/gsv/Projects/GraphBLAS-sharp/tests/GraphBLAS-sharp.Tests/BackendCommonTests/CopyTests.fs:line 48
   at [email protected](Double[] array) in /home/gsv/Projects/GraphBLAS-sharp/tests/GraphBLAS-sharp.Tests/BackendCommonTests/CopyTests.fs:line 66
   at FsCheck.Testable.evaluate[a,b](FSharpFunc`2 body, a a)
Focus on error:
	etestProperty (1132971536, 296954577) "Correctness test on random float arrays"

To Reproduce
Steps to reproduce the behavior:

  1. Go to net5 branch
  2. Run build.sh

Expected behavior
All tests passed

Desktop (please complete the following information):

  • OS: Ubuntu 20.04.1 LTS
  • clinfo output:
  Platform Name                                   Intel(R) OpenCL HD Graphics
Number of devices                                 1
  Device Name                                     Intel(R) UHD Graphics 620 [0x5917]
  Device Vendor                                   Intel(R) Corporation
  Device Vendor ID                                0x8086
  Device Version                                  OpenCL 3.0 NEO 
  Driver Version                                  21.37.20939
  Device OpenCL C Version                         OpenCL C 3.0 

Remarks about MatrixEwiseAddTests.fs

  1. It's also needed to free this buffers by queering Free msg, cause dispose doesn't really do that.
  2. Tests could be generalized over ClContext and matrix type (like here).
  3. Why is the maximum possible wgSize 32? Why is the workgroup size chosen this way?
  4. Float values couldn't be compared using Expect.equal, as far as I know.
    Expect.equal actual2D.[i, j] expected.[i, j] "Elements of matrices should be equals."
  5. Sequences are best compared using Expect.sequenceEqual.
  6. It's better not to use generators manually by getting sample. You can use config to implicitly pass them.

COOMatrix ewise add works too long

Describe the bug
The function COOMatrix.eWiseAdd works too long on small 2d arrays. Actually, looks like that it is in an infinite loop.

To Reproduce
Steps to reproduce the behavior:

  1. Check out net5 branch
  2. run build.sh

Expected behavior
All tests passed

Desktop (please complete the following information):

  • OS: Ubuntu 20.04.1 LTS
  • clinfo output:
  Platform Name                                   Intel(R) OpenCL HD Graphics
Number of devices                                 1
  Device Name                                     Intel(R) UHD Graphics 620 [0x5917]
  Device Vendor                                   Intel(R) Corporation
  Device Vendor ID                                0x8086
  Device Version                                  OpenCL 3.0 NEO 
  Driver Version                                  21.37.20939
  Device OpenCL C Version                         OpenCL C 3.0 

removeDuplicates works too long on arrays of length 3

Describe the bug
The function removeDuplicates works too long on arrays of length 3. Actually, looks like that it is in an infinite loop.

To Reproduce
Steps to reproduce the behavior:

  1. Check out net5 branch
  2. run build.sh

Expected behavior
All tests passed

Desktop (please complete the following information):

  • OS: Ubuntu 20.04.1 LTS
  • clinfo output:
  Platform Name                                   Intel(R) OpenCL HD Graphics
Number of devices                                 1
  Device Name                                     Intel(R) UHD Graphics 620 [0x5917]
  Device Vendor                                   Intel(R) Corporation
  Device Vendor ID                                0x8086
  Device Version                                  OpenCL 3.0 NEO 
  Driver Version                                  21.37.20939
  Device OpenCL C Version                         OpenCL C 3.0 

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.