Skip to content

Commit 16adb73

Browse files
author
Kent Knox
committed
Updated readme for v0.10
Bumped cmake version to v.10
1 parent e92f41b commit 16adb73

4 files changed

Lines changed: 35 additions & 17 deletions

File tree

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ endif()
3838
if( POLICY CMP0048 )
3939
cmake_policy( SET CMP0048 NEW )
4040

41-
project( SuperBuild.clSPARSE VERSION 0.9.0.0 )
41+
project( SuperBuild.clSPARSE VERSION 0.10.0.0 )
4242
else( )
4343
project( SuperBuild.clSPARSE )
4444

@@ -48,7 +48,7 @@ else( )
4848
endif( )
4949

5050
if( NOT DEFINED SuperBuild.clSPARSE_VERSION_MINOR )
51-
set( SuperBuild.clSPARSE_VERSION_MINOR 9 )
51+
set( SuperBuild.clSPARSE_VERSION_MINOR 10 )
5252
endif( )
5353

5454
if( NOT DEFINED SuperBuild.clSPARSE_VERSION_PATCH )

README.md

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,26 @@ an OpenCL™ library implementing Sparse linear algebra routines. This proj
1111
a collaboration between [AMD Inc.](http://www.amd.com/) and
1212
[Vratis Ltd.](http://www.vratis.com/).
1313

14-
### What's new in clSPARSE **v0.8**
15-
- New single precision SpM-SpM (SpGEMM) function
16-
- Optimizations to the sparse matrix conversion routines
17-
- [API documentation](http://clmathlibraries.github.io/clSPARSE/) available
18-
- SpM-dV routines now provide [higher precision accuracy] (https://github.com/clMathLibraries/clSPARSE/wiki/Precision)
19-
- Various bug fixes integrated
14+
### What's new in clSPARSE **v0.10**
15+
**This release introduces breaking API changes from the prior version**. clSPARSE is still in a beta phase, and we may need to change the API at times to increase maintainability or fix design issues. A few changes are introduced to more closely follow the recently published [Cpp Core Guidelines](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines.html), a strong candidate to be the coding guidelines to be used in clSPARSE. Changes are noted below.
16+
- The API to create meta data for a csr encoded sparse matrix has changed. This is an attempt to hide the implementation details of how meta data is stored from the user. This allows the library freedom to change and iterate meta data without breaking clients.
17+
- `clsparseCsrMetaCompute()` renamed to `clsparseCsrMetaCreate()`, to more intuitively pair with the
18+
- New API `clsparseCsrMetaDelete()`
19+
- A few routines changed pure 'out' parameters to be returned on the stack as structs<sup>[1](#return-tuple)</sup>
20+
- `clsparseCreateControl()`
21+
- `clsparseGetEvent()`
22+
- `clsparseCreateSolverControl()`
23+
- `clsparseCsrMetaSize()`
24+
- A new index type has been introduced `clsparseIdx_t` to abstract the size of an index from the library interface; the only choice currently is 4 bytes. If users use this datatype for indices in their code, changing to 8-byte indices in the future should only be a recompile.
25+
- The names of member variables in our public structs have been renamed for consistency. Before, our member variables was not consistent with camel case and underscore naming. Member variables are now standardized to use underscores, but we keep camel casing for function and struct names<sup>[2](#consistent-naming)</sup>
26+
- `colIndices` to `col_indices`
27+
- `rowIndices` to `row_indices`
28+
- `rowOffsets` to `row_pointer` (renamed to pointer to remove confusion with buffer offsets for cl1.2)
29+
- `offValues` to `off_values`
30+
- `offColInd` to `off_col_indices`
31+
- `offRowOff` to `off_row_pointer`
32+
- `offValues` to `off_values`
33+
- All samples have been changed to compile with the above changes.
2034

2135

2236
## clSPARSE features
@@ -34,7 +48,7 @@ projects to build wrappers around clSPARSE in any language they need. A great d
3448
of thought and effort went into designing the API’s to make them less ‘cluttered’
3549
compared to the older clMath libraries. OpenCL state is not explicitly passed
3650
through the API, which enables the library to be forward compatible when users are
37-
ready to switch from OpenCL 1.2 to OpenCL 2.0 <sup>[1](#opencl-2)</sup>
51+
ready to switch from OpenCL 1.2 to OpenCL 2.0 <sup>[3](#opencl-2)</sup>
3852

3953
### Google Groups
4054
Two mailing lists have been created for the clMath projects:
@@ -105,5 +119,9 @@ clSPARSE is licensed under the [Apache License, Version 2.0](http://www.apache.o
105119
- Googletest v1.7
106120
- Boost v1.58
107121

108-
## Clarifications
109-
<a name="opencl-2">[1]</a>: OpenCL 2.0 support is not yet fully implemented; only the interfaces have been designed
122+
## Footnotes
123+
<a name="return-tuple">[1]</a>: Changed to reflect CppCoreGuidelines: [F.21](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines.html#a-namerf-out-multia-f21-to-return-multiple-out-values-prefer-returning-a-tuple-or-struct)
124+
125+
<a name="consistent-naming">[2]</a>: Changed to reflect CppCoreGuidelines: [NL.8](http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines.html#a-namerl-namea-nl8-use-a-consistent-naming-style)
126+
127+
<a name="opencl-2">[3]</a>: OpenCL 2.0 support is not yet fully implemented; only the interfaces have been designed

src/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ endif()
3737
# clSPARSE becomes the name of the project with a particular version
3838
if( POLICY CMP0048 )
3939
cmake_policy( SET CMP0048 NEW )
40-
project( clSPARSE VERSION 0.9.0.0 LANGUAGES C CXX )
40+
project( clSPARSE VERSION 0.10.0.0 LANGUAGES C CXX )
4141
else( )
4242
project( clSPARSE C CXX )
4343
# Define a version for the code
@@ -46,7 +46,7 @@ else( )
4646
endif( )
4747

4848
if( NOT DEFINED clSPARSE_VERSION_MINOR )
49-
set( clSPARSE_VERSION_MINOR 9 )
49+
set( clSPARSE_VERSION_MINOR 10 )
5050
endif( )
5151

5252
if( NOT DEFINED clSPARSE_VERSION_PATCH )

src/include/clSPARSE.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,8 @@ extern "C" {
227227
*/
228228
typedef struct _clsparseCreateResult
229229
{
230-
clsparseControl control;
231230
clsparseStatus status;
231+
clsparseControl control;
232232
} clsparseCreateResult;
233233

234234
/*!
@@ -276,8 +276,8 @@ extern "C" {
276276
*/
277277
typedef struct _clsparseEventResult
278278
{
279-
cl_event event;
280279
clsparseStatus status;
280+
cl_event event;
281281
} clsparseEventResult;
282282

283283
/*!
@@ -352,8 +352,8 @@ extern "C" {
352352
*/
353353
typedef struct _clsparseCreateSolverResult
354354
{
355-
clSParseSolverControl control;
356355
clsparseStatus status;
356+
clSParseSolverControl control;
357357
} clsparseCreateSolverResult;
358358

359359
/*!
@@ -619,8 +619,8 @@ extern "C" {
619619
*/
620620
typedef struct _clsparseMetaSizeResult
621621
{
622-
clsparseIdx_t metaSize;
623622
clsparseStatus status;
623+
clsparseIdx_t metaSize;
624624
} clsparseMetaSizeResult;
625625

626626
/*!

0 commit comments

Comments
 (0)