Skip to content

Commit

Permalink
[Project] Release 1.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
EgorOrachyov committed May 8, 2021
1 parent 1214391 commit 240e75d
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 12 deletions.
56 changes: 56 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Changelog

All notable changes to this project are documented in this file.
Changes format: version name and date, minor notes, new features, fixes, what removed.

Release are available at [link](https://github.com/JetBrains-Research/cuBool/releases).

## v1.1.0 - May 8, 2021

### Summary

Introduce sparse vector of boolean values support for Cuda and CPU computations.
Added new primitive type as well as supported common operations,
which involve matrix-vector operations and vector manipulation.
Added new vector C API, exposed vector primitive into python-package.

#### New features

- Sparse vector support
- Vector implementation for Cuda backend
- Vector implementation for Sequential backend
- Vector creation (empty, from data, with random data)
- Matrix-vector operations (matrix-vector and vector-matrix multiplication)
- Vector-vector operations (element-wise addition)
- Matrix operations (equality, reduce to value, extract sub-vector)
- Vector data extraction (as list of indices)
- Vector syntax sugar (pretty string printing, slicing, iterating through non-zero indices)
- Matrix operations (extract row or matrix column as sparse vector, reduce matrix (optionally transposed) to vector)

#### Deprecated

- Matrix reduce to matrix (compatibility feature)

## v1.0.0 - Apr 2, 2021

### Summary

cuBool is a sparse linear Boolean algebra for Nvidia Cuda computations.
Library provides C compatible API, the core of the library is written on C++ with CUDA C/C++ API and
Thrust for Cuda related computations. Library also supports CPU backend for non-Cuda devices.
pycubool Python-package is shipped with the library source code and it provides high-level safe
and efficient access to the library within Python runtime.

#### New features

- Cuda backend
- Sequential (CPU) backend
- Sparse matrix support
- Matrix creation (empty, from data, with random data)
- Matrix-matrix operations (multiplication, element-wise addition, kronecker product)
- Matrix operations (equality, transpose, reduce to vector, extract sub-matrix)
- Matrix data extraction (as lists, as list of pairs)
- Matrix syntax sugar (pretty string printing, slicing, iterating through non-zero values)
- IO (import/export matrix from/to .mtx file format)
- GraphViz (export single matrix or set of matrices as a graph with custom color and label settings)
- Debug (matrix string debug markers, logging, operations time profiling)
13 changes: 6 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
[![JB Research](https://jb.gg/badges/research-flat-square.svg)](https://research.jetbrains.org/)
[![Ubuntu](https://github.com/JetBrains-Research/cuBool/workflows/Ubuntu/badge.svg?branch=master)](https://github.com/JetBrains-Research/cuBool/actions)
[![License](https://img.shields.io/badge/license-MIT-orange)](https://github.com/JetBrains-Research/cuBool/blob/master/LICENSE)
[![Package](https://img.shields.io/badge/pypi%20package-1.0.0-%233776ab)](https://pypi.org/project/pycubool/)
[![Package](https://img.shields.io/badge/pypi%20package-1.1.0-%233776ab)](https://pypi.org/project/pycubool/)

**cuBool** is a linear Boolean algebra library primitives and operations for
work with sparse matrices written on the NVIDIA CUDA platform. The primary
Expand Down Expand Up @@ -327,18 +327,17 @@ cuBool
@MISC{cuBool,
author = {Orachyov, Egor and Alimov, Pavel and Grigorev, Semyon},
title = {cuBool: sparse Boolean linear algebra for Nvidia Cuda},
year = 2020,
year = 2021,
url = {https://github.com/JetBrains-Research/cuBool},
note = {Version 1.0.0}
note = {Version 1.1.0}
}
```
## Algorithms
In this section listed all the related papers, articles and links, which
were used as an algorithmic foundation for implementation of sparse linear
boolean algebra operations (sparse matrix-matrix multiplication, sparse matrix-vector
multiplication, sparse vector-matrix multiplication, matrix-matrix element-wise addition and etc.):
In this section listed all the related papers, which were used as an algorithmic foundation for
implementation of sparse linear boolean algebra operations (sparse matrix-matrix multiplication,
sparse matrix-vector multiplication, sparse vector-matrix multiplication, matrix-matrix element-wise addition and etc.):
- High-performance and Memory-saving Sparse General Matrix-Matrix Multiplication for NVIDIA Pascal GPU,
Yusuke Nagasaka, Akira Nukada, Satoshi Matsuoka
Expand Down
2 changes: 1 addition & 1 deletion cubool/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ if (CUBOOL_WITH_CUDA)
sources/cuda/kernels/slow_sort.cuh
sources/cuda/kernels/bin_search.cuh
sources/cuda/kernels/spgemv.cuh
sources/cuda/kernels/spgemv_t.cuh
sources/cuda/kernels/spgemv_t.cuh
sources/cuda/kernels/spewiseadd.cuh
sources/cuda/kernels/sptranspose.cuh
sources/cuda/kernels/sptranspose2.cuh
Expand Down
4 changes: 2 additions & 2 deletions python/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,9 +154,9 @@ Script can be rendered by any [gviz tool](https://dreampuf.github.io/GraphvizOnl
@MISC{cuBool,
author = {Orachyov, Egor and Alimov, Pavel and Grigorev, Semyon},
title = {cuBool: sparse Boolean linear algebra for Nvidia Cuda},
year = 2020,
year = 2021,
url = {https://github.com/JetBrains-Research/cuBool},
note = {Version 1.0.0}
note = {Version 1.1.0}
}
```

Expand Down
4 changes: 2 additions & 2 deletions python/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@

setuptools.setup(
name="pycubool",
version="1.0.0",
version="1.1.0",
author="Egor Orachyov",
author_email="[email protected]",
license="MIT",
description="cuBool library python bindings.",
description="cuBool library python bindings",
long_description=README,
long_description_content_type="text/markdown",
url="https://github.com/JetBrains-Research/cuBool",
Expand Down

0 comments on commit 240e75d

Please sign in to comment.