Skip to content

Commit

Permalink
[Project] Release 1.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
EgorOrachyov committed Jun 8, 2021
1 parent 6d72d92 commit 699f351
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 7 deletions.
34 changes: 34 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# 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/spbla/releases).

## v1.0.0 - June 8, 2021

### Summary

**spbla** is a sparse linear Boolean algebra for Nvidia Cuda, OpenCL and CPU computations.
Library provides C compatible API, the core of the library is written on C++ with
CUDA C/C++, CUDA Thrust and OpenCL for actual backend implementation.
Library supports CPU backend as fallback for debugging, prototyping and running on low-end PC.
**pyspbla** Python-package sources are shipped with the library source code.
It provides high-level safe and efficient access to the library within Python runtime.

Python-package for Linux-based OSs is published in PyPI and available at [link](https://pypi.org/project/pyspbla/).

#### New features

- Cuda backend
- OpenCL 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)
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
[![JB Research](https://jb.gg/badges/research-flat-square.svg)](https://research.jetbrains.org/)
[![Ubuntu](https://github.com/JetBrains-Research/spbla/actions/workflows/ubuntu.yml/badge.svg?branch=main)](https://github.com/JetBrains-Research/spbla/actions/workflows/ubuntu.yml)
[![License](https://img.shields.io/badge/license-MIT-orange)](https://github.com/JetBrains-Research/spbla/blob/master/LICENSE)
[![Package](https://img.shields.io/badge/pypi%20package-1.0.0-%233776ab)](https://pypi.org/project/pyspbla/)

**spbla** is a linear Boolean algebra library primitives and operations for
work with sparse matrices written for CPU, Cuda and OpenCL platforms. The primary
Expand All @@ -25,6 +26,8 @@ for computations on CPU side only. This backend is selected automatically
if Cuda compatible device is not present in the system. This can be quite handy for
prototyping algorithms on a local computer for later running on a powerful server.

**PyPI package web page** is following [link](https://pypi.org/project/pyspbla/).

### Features summary

- Python package for every-day tasks
Expand Down Expand Up @@ -74,7 +77,7 @@ These steps are required if you want to build library for your specific platform

### Requirements

- Linux based OS (tested on Ubuntu 20.04)
- Linux-based OS (tested on Ubuntu 20.04)
- CMake Version 3.15 or higher
- CUDA Compatible GPU device (to run Cuda computations)
- GCC Compiler
Expand Down
2 changes: 1 addition & 1 deletion python/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ element-wise addition, matrix-matrix multiplication and Kronecker product.

**As a fallback** library provides sequential backend for mentioned above operations
for computations on CPU side only. This backend is selected automatically
if Cuda compatible device is not presented in the system. This can be quite handy for
if Cuda/OpenCL compatible device is not presented in the system. This can be quite handy for
prototyping algorithms on a local computer for later running on a powerful server.

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

setuptools.setup(
name="pyspbla",
version="0.0.0",
version="1.0.0",
author="Egor Orachyov",
author_email="[email protected]",
license="MIT",
Expand All @@ -33,7 +33,7 @@
"Bug Tracker": "https://github.com/JetBrains-Research/spbla/issues"
},
classifiers=[
"Development Status :: 3 - Alpha",
"Development Status :: 5 - Production/Stable",
"Programming Language :: Python :: 3",
"Programming Language :: C++",
"License :: OSI Approved :: MIT License",
Expand All @@ -56,7 +56,8 @@
"graph-analysis",
"graph-algorithms",
"graphblas",
"nvidia-cuda"
"nvidia-cuda",
"opencl"
],
packages=["pyspbla"],
package_dir={'': '.'},
Expand Down
2 changes: 0 additions & 2 deletions spbla/sources/opencl/opencl_backend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,6 @@ namespace spbla {

void OpenCLBackend::queryCapabilities(spbla_DeviceCaps &caps) {
if (controls != nullptr) {

{
int maxNameLength = oclDetails::getNameMaxLength(caps.name);
std::string nameStr = controls->device.getInfo<CL_DEVICE_NAME>();
Expand All @@ -119,7 +118,6 @@ namespace spbla {
caps.cudaSupported = false;
caps.openclSupported = true;


auto version = getVersion();
caps.major = version.first;
caps.minor = version.second;
Expand Down

0 comments on commit 699f351

Please sign in to comment.