Skip to content

BFS Push-pull, SSSP, SpMSpV #83

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 75 commits into from
Oct 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
c45d651
add BFS (benchmarkdotnet) benchmark result for b9ef28731a1f9a4549e7b8…
Mar 7, 2023
ec833fb
add BFS (benchmarkdotnet) benchmark result for b9ef28731a1f9a4549e7b8…
Mar 7, 2023
df59d19
add BFS (benchmarkdotnet) benchmark result for c7bb9b1addaf82693381e3…
Mar 25, 2023
fdebf18
add BFS (benchmarkdotnet) benchmark result for abdb353aa170e7693660ff…
Mar 25, 2023
9359530
add BFS (benchmarkdotnet) benchmark result for 7885e8ae7c843c91d05171…
Mar 25, 2023
346846f
add BFS (benchmarkdotnet) benchmark result for e850a49b54523883645408…
Apr 7, 2023
97d7743
add BFS (benchmarkdotnet) benchmark result for e0485c52128b16b0ba4668…
Apr 10, 2023
578c537
add BFS (benchmarkdotnet) benchmark result for cb8a79181709f3d138b077…
Apr 28, 2023
8d28782
Merge pull request #81 from YaccConstructor/dev
gsvgit May 16, 2023
f1dfc23
Turn API docs generation on.
gsvgit Apr 9, 2023
af19a02
Dependencies updated in order to fix CI buid (log file format problem)
gsvgit May 16, 2023
564acf9
Release branch is master not main.
gsvgit May 16, 2023
be3395a
Documentation release of version 0.1.0
gsvgit May 16, 2023
1584013
Automate Release and Publish process (publish on CI)
gsvgit May 17, 2023
0305361
Bump version to 0.1.0-alpha1
gsvgit May 18, 2023
c5a0406
Fix misprint.
gsvgit May 18, 2023
cf49e7a
Configure separated builds in both debug and release modes.
gsvgit May 18, 2023
8a3b796
Correct misprint in workflow configuration yaml.
gsvgit May 18, 2023
41cdc46
Updated names of jobs (Release - Debug modes)
gsvgit May 18, 2023
f02ef72
Release docks on CI
gsvgit May 18, 2023
6f08dad
SSSP dense
kirillgarbar May 20, 2023
38ceee3
Radix returns sorted keys
kirillgarbar May 20, 2023
0d09177
SpMSpV bool only
kirillgarbar May 20, 2023
a97631a
Choose with keys
kirillgarbar May 20, 2023
a87949e
SegReduce without offsets
kirillgarbar May 20, 2023
7c22108
SpMSpV general
kirillgarbar May 21, 2023
d3bc08c
None on empty vectors
kirillgarbar May 21, 2023
d6b9fb5
BFS Push-pull and push
kirillgarbar May 21, 2023
808ea01
Paket lock update
kirillgarbar May 21, 2023
91513e1
Option.map
kirillgarbar May 22, 2023
9b6fd09
Radix version returning values only
kirillgarbar May 22, 2023
5a62156
Remove unused methods
kirillgarbar May 22, 2023
90fe441
ClArray.count uses map
kirillgarbar May 22, 2023
1f54823
Free
kirillgarbar May 22, 2023
c2db0de
Upper case in error messages
kirillgarbar May 22, 2023
8358a15
Fix comments in Arithmetic
kirillgarbar May 22, 2023
53fba87
Dataset folder set to default
kirillgarbar May 23, 2023
56f8097
Merge branch 'dev' into dev
kirillgarbar May 23, 2023
90a1efe
Paket lock fix
kirillgarbar May 23, 2023
0c5db3f
refactor: comments; common api
artemiipatov Jul 18, 2023
7ec498d
wip: refactor
artemiipatov Jul 18, 2023
5d900f5
refactor: namespace/module names
artemiipatov Jul 21, 2023
4c21e7e
refactor: add comments
artemiipatov Jul 22, 2023
be8c888
refactor: namespace/module names
artemiipatov Jul 22, 2023
40e3e3a
refactor: assembly attributes
artemiipatov Jul 23, 2023
d587397
refactor: readme.md
artemiipatov Jul 23, 2023
4c5dede
refactor: objects comments
artemiipatov Jul 23, 2023
45baacd
refactor: move Matrix.map, Vector.map; add: Vector.map tests
artemiipatov Jul 24, 2023
4841a03
refactor: vector.map tests
artemiipatov Jul 24, 2023
da2d1bd
fix: exception related to the use of bitonic
artemiipatov Jul 24, 2023
203d641
refactor: returned internal comments
artemiipatov Jul 26, 2023
04efa1e
fix: common
artemiipatov Jul 26, 2023
b9d202f
refactor: common; docs for matrix
artemiipatov Jul 27, 2023
6c0a71f
refactor: formatting
artemiipatov Jul 27, 2023
2d86b35
fix: blit, choose2 tests exception
artemiipatov Jul 29, 2023
51bb2b4
fix: kronecker memory leaks
artemiipatov Jul 31, 2023
779c8de
refactor: maxAllocSize: unit64
artemiipatov Aug 7, 2023
bb708d0
refactor: tests count
artemiipatov Aug 7, 2023
3ceb397
Move Map and Bitmap methods to separate modules to ease dependencies
kirillgarbar Sep 10, 2023
3616f94
SSSP optimization, using front as mask
kirillgarbar Sep 10, 2023
77d6fe5
Reduce instead of prefixSum
kirillgarbar Sep 10, 2023
a6a068d
Release collectedRows, Option.bind
kirillgarbar Sep 10, 2023
2f38f74
Non-blocking dispose
kirillgarbar Sep 10, 2023
1302d8e
Paket lock update
kirillgarbar Sep 10, 2023
eb82c53
refactor: matrix, vector comments
artemiipatov Sep 29, 2023
e187916
fix: spgemm negative maxAllocSize
artemiipatov Sep 30, 2023
441a2f9
fix: spgemm maxAllocSize calculation
artemiipatov Sep 30, 2023
8a79b41
Merge pull request #84 from artemiipatov/refactor
gsvgit Oct 2, 2023
48404f9
Merge remote-tracking branch 'YaccConstructor/master' into pr
kirillgarbar Oct 5, 2023
60500e9
Merge finish
kirillgarbar Oct 5, 2023
f4484a9
Enable all tests
kirillgarbar Oct 5, 2023
c6232d3
Format Program.fs
kirillgarbar Oct 5, 2023
ca7b275
paket.lock update
kirillgarbar Oct 5, 2023
53c6715
Encapsulate ClCell management inside operation
kirillgarbar Oct 10, 2023
d2951d4
mkNumericSumAsMul allow max length paths
kirillgarbar Oct 14, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions .github/workflows/build-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: BuildDocs

on:
push:
pull_request:
workflow_dispatch:

jobs:
win-build:
name: Windows Build Docs
runs-on: windows-latest
defaults:
run:
shell: cmd
steps:
- name: System Info
run: systeminfo

- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
global-json-file: global.json

- name: Build
run: ./build.cmd BuildDocs
env:
CI: true

linux-build:
name: Linux Build Docs
runs-on: ubuntu-latest
steps:
- name: System Info
run: lscpu

- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
global-json-file: global.json

- name: Build
run: |
chmod +x ./build.sh
./build.sh BuildDocs
env:
CI: true
63 changes: 57 additions & 6 deletions .github/workflows/build-on-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ on:
workflow_dispatch:

jobs:
win-build:
name: Windows Build (No Tests)
win-build-release:
name: Windows Release Build (No Tests)
runs-on: windows-latest
defaults:
run:
Expand All @@ -28,9 +28,34 @@ jobs:
# Work around https://github.com/actions/setup-dotnet/issues/29
DOTNET_ROOT: ${{ runner.tool_cache }}/dncs/${{ matrix.dotnet }}/x64
CI: true
CONFIGURATION: Release

win-build-debug:
name: Windows Debug Build (No Tests)
runs-on: windows-latest
defaults:
run:
shell: cmd
steps:
- name: System Info
run: systeminfo

- uses: actions/checkout@v2

- name: Setup .NET Core
uses: actions/setup-dotnet@v1

- name: Build
run: ./build.cmd DotnetBuild
env:
# Work around https://github.com/actions/setup-dotnet/issues/29
DOTNET_ROOT: ${{ runner.tool_cache }}/dncs/${{ matrix.dotnet }}/x64
CI: true
CONFIGURATION: Debug


win-test:
name: Windows Build And Test
name: Windows Release Build And Test
if: github.repository_owner != 'YaccConstructor'
runs-on: windows-latest
defaults:
Expand Down Expand Up @@ -68,9 +93,32 @@ jobs:
# Work around https://github.com/actions/setup-dotnet/issues/29
DOTNET_ROOT: ${{ runner.tool_cache }}/dncs/${{ matrix.dotnet }}/x64
CI: true
CONFIGURATION: Release

linux-build-debug:
name: Linux Debug Build (No Tests)
runs-on: ubuntu-latest
steps:
- name: System Info
run: lscpu

- uses: actions/checkout@v1

- name: Setup .NET
uses: actions/setup-dotnet@v1

- name: Build
run: |
chmod +x ./build.sh
./build.sh DotnetBuild
env:
# Work around https://github.com/actions/setup-dotnet/issues/29
DOTNET_ROOT: ${{ runner.tool_cache }}/dncs/${{ matrix.dotnet }}/x64
CI: true
CONFIGURATION: Debug

linux-build:
name: Linux Build (No Tests)
linux-build-release:
name: Linux Release Build (No Tests)
runs-on: ubuntu-latest
steps:
- name: System Info
Expand All @@ -89,9 +137,10 @@ jobs:
# Work around https://github.com/actions/setup-dotnet/issues/29
DOTNET_ROOT: ${{ runner.tool_cache }}/dncs/${{ matrix.dotnet }}/x64
CI: true
CONFIGURATION: Release

linux-test:
name: Linux Build And Test
name: Linux Release Build And Test
if: github.repository_owner != 'YaccConstructor'
runs-on: ubuntu-latest
steps:
Expand Down Expand Up @@ -121,6 +170,7 @@ jobs:
# Work around https://github.com/actions/setup-dotnet/issues/29
DOTNET_ROOT: ${{ runner.tool_cache }}/dncs/${{ matrix.dotnet }}/x64
CI: true
CONFIGURATION: Release

linux-test-self-hosted:
name: Linux Self-Hosted Test
Expand All @@ -143,3 +193,4 @@ jobs:
# Work around https://github.com/actions/setup-dotnet/issues/29
DOTNET_ROOT: ${{ runner.tool_cache }}/dncs/${{ matrix.dotnet }}/x64
CI: true
CONFIGURATION: Release
27 changes: 27 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Publish Nuget packages

on:
push:
tags:
- '*'

jobs:
publish-self-hosted:
name: Build, test, and publish Nuget packages on self-hosted server with GPU
if: github.repository_owner == 'YaccConstructor'
runs-on: self-hosted
steps:
- uses: actions/checkout@v3

- name: OpenCL Info
run: clinfo

- name: Build, test, publish
env:
NUGET_TOKEN: ${{ secrets.NUGET_TOKEN }}
GITHUB_TOKEN: ${{ secrets._GITHUB_TOKEN }}
FAKE_DETAILED_ERRORS: true
CI: true
run: |
chmod +x ./build.sh
./build.sh Publish
27 changes: 27 additions & 0 deletions .github/workflows/release-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Release Docs

on:
push:
tags:
- '*'

jobs:

linux-build:
name: Linux Release Docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
global-json-file: global.json

- name: ReleaseDocs
run: |
chmod +x ./build.sh
./build.sh ReleaseDocs
env:
GITHUB_TOKEN: ${{ secrets._GITHUB_TOKEN }}
FAKE_DETAILED_ERRORS: true
CI: true
17 changes: 12 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,22 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
## [0.1.0-alpha1] - 2023-05-18

## [0.1.0] - 2017-03-17
First release
First release. For demo and tests. Basic linear algebra only. No graph algorithms.

### Added
- This release already has lots of features
- Basic functions for vectors and matrices creation
- Basic functions for vectors manipulation: map, reduce
- Basic functions for matrices manipulation: map, transpose
- Matrix-matrix element-wise functions (map2)
- Vector-vector element-wise functions (map2)
- Sparse matrix multiplication
- Kronecker product

[0.1.0]: https://github.com/user/MyCoolNewLib.git/releases/tag/v0.1.0
[Unreleased]: https://github.com/YaccConstructor/GraphBLAS-sharp/compare/v0.1.0-alpha1...HEAD
[0.1.0-alpha1]: https://github.com/YaccConstructor/GraphBLAS-sharp/releases/tag/v0.1.0-alpha1
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ GraphBLAS# is a GPGPU-based [GraphBLAS](https://graphblas.org/)-like API impleme
- [x] COO-COO `map2`
- [x] COO-COO `map2AtLeastOne`
- [x] CSR-CSR multiplication
- [x] CSR-CSR Kronecker product
- **Vector-Matrix**
- [x] Dense-CSR multiplication
- [ ] Sparse-CSR multiplication
Expand Down Expand Up @@ -231,6 +232,13 @@ build.cmd
```
To find more options look at [MiniScaffold](https://github.com/TheAngryByrd/MiniScaffold). We use it in our project.

### Release
The release process is automated: NuGet packages publishing process is triggered by tag pushing to any branch.
To release new version one should
1. [Add release notes to CHANGELOG](https://github.com/TheAngryByrd/MiniScaffold/blob/master/Content/Library/README.md#releasing)
2. Run ```./build.sh Release [version]``` (on local machine)


## License
This project licensed under MIT License. License text can be found in the [license file](https://github.com/YaccConstructor/GraphBLAS-sharp/blob/master/LICENSE.md).

Expand Down
Loading