You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+27-9Lines changed: 27 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,12 +11,26 @@ an OpenCL™ library implementing Sparse linear algebra routines. This proj
11
11
a collaboration between [AMD Inc.](http://www.amd.com/) and
12
12
[Vratis Ltd.](http://www.vratis.com/).
13
13
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.
20
34
21
35
22
36
## clSPARSE features
@@ -34,7 +48,7 @@ projects to build wrappers around clSPARSE in any language they need. A great d
34
48
of thought and effort went into designing the API’s to make them less ‘cluttered’
35
49
compared to the older clMath libraries. OpenCL state is not explicitly passed
36
50
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>
38
52
39
53
### Google Groups
40
54
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
105
119
- Googletest v1.7
106
120
- Boost v1.58
107
121
108
-
## Clarifications
109
-
<aname="opencl-2">[1]</a>: OpenCL 2.0 support is not yet fully implemented; only the interfaces have been designed
122
+
## Footnotes
123
+
<aname="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
+
<aname="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
+
<aname="opencl-2">[3]</a>: OpenCL 2.0 support is not yet fully implemented; only the interfaces have been designed
0 commit comments