Skip to content

Commit 89d1dc7

Browse files
authored
[RFC|oneMKL]Enable programmatic versioning (#561)
* Enable programmatic versioning * fix version * Add version macros * fix typo * Use codeblock * multiline codeblock * format RST * Limit raw text to 80col length * Remove top-level version macro * Revert changes from versioning.rst * [oneMKL]Add numerical versioning * Fix formatting * Update other_architecture.inc.rst * Use domain-specific macros instead * Clarify lack of revision number * Use SPBLAS instead of SPARSE as the domain name * Add STAT domain macro * Add rules for incompliance * Change STAT to STATS as the domain name * Add link to versioning details
1 parent 0d49ed8 commit 89d1dc7

File tree

1 file changed

+34
-2
lines changed

1 file changed

+34
-2
lines changed

source/elements/oneMKL/source/architecture/other_architecture.inc.rst

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,43 @@ This section covers all other features in the design of oneMKL architecture.
1111

1212
.. _onemkl_spec_current_version:
1313

14-
Current Version of this oneMKL Specification
14+
Specification Version and Compliance
1515
+++++++++++++++++++++++++++++++++++++++++++++
1616

17-
This is the oneMKL specification which is part of the oneAPI specification version 1.0.0.
17+
Each oneMKL domain must define a preprocessor macro to represent the version of the specification that the implementation is compliant with.
1818

19+
The macros for each domain are listed as follows:
20+
21+
| ONEMKL_BLAS_SPEC_VERSION
22+
| ONEMKL_LAPACK_SPEC_VERSION
23+
| ONEMKL_SPBLAS_SPEC_VERSION
24+
| ONEMKL_DFT_SPEC_VERSION
25+
| ONEMKL_RNG_SPEC_VERSION
26+
| ONEMKL_STATS_SPEC_VERSION
27+
| ONEMKL_VM_SPEC_VERSION
28+
29+
The specification version can be created by appending all digits of the specification version in the format of <MAJOR><MINOR>. MINOR version always uses two digits. This version can be used to check the compatibility of the implementation with the specification version. Note that the revision is not included here because it reflects changes only for the specification document without affecting the implementation. If the implementation is not compliant with any release of the specification, then the macro must have a numerical value of `000`.
30+
31+
Version Example
32+
33+
| oneAPI 1.1 rev 1 will be represented as a numerical value of 101
34+
| oneAPI 1.2 rev 1 will be represented as a numerical value of 102
35+
| oneAPI 1.2 rev 2 will be represented as a numerical value of 102
36+
37+
Macro Example
38+
39+
.. code-block:: c
40+
41+
// For oneAPI 1.2 rev 1
42+
#define ONEMKL_BLAS_SPEC_VERSION 102
43+
44+
// For oneAPI 1.2 rev 2
45+
#define ONEMKL_DFT_SPEC_VERSION 102
46+
47+
// For oneAPI 1.3 rev 1
48+
#define ONEMKL_VM_SPEC_VERSION 103
49+
50+
Versioning details are defined here: https://github.com/uxlfoundation/oneAPI-spec/blob/main/doc/versioning.rst#provisional-versions
1951

2052
.. _onemkl_pre_post_conditions:
2153

0 commit comments

Comments
 (0)