diff --git a/source/elements/oneMKL/source/architecture/other_architecture.inc.rst b/source/elements/oneMKL/source/architecture/other_architecture.inc.rst index 7e9e2da362..9c5473803c 100644 --- a/source/elements/oneMKL/source/architecture/other_architecture.inc.rst +++ b/source/elements/oneMKL/source/architecture/other_architecture.inc.rst @@ -11,11 +11,43 @@ This section covers all other features in the design of oneMKL architecture. .. _onemkl_spec_current_version: -Current Version of this oneMKL Specification +Specification Version and Compliance +++++++++++++++++++++++++++++++++++++++++++++ -This is the oneMKL specification which is part of the oneAPI specification version 1.0.0. +Each oneMKL domain must define a preprocessor macro to represent the version of the specification that the implementation is compliant with. +The macros for each domain are listed as follows: + + | ONEMKL_BLAS_SPEC_VERSION + | ONEMKL_LAPACK_SPEC_VERSION + | ONEMKL_SPBLAS_SPEC_VERSION + | ONEMKL_DFT_SPEC_VERSION + | ONEMKL_RNG_SPEC_VERSION + | ONEMKL_STATS_SPEC_VERSION + | ONEMKL_VM_SPEC_VERSION + +The specification version can be created by appending all digits of the specification version in the format of . 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`. + +Version Example + + | oneAPI 1.1 rev 1 will be represented as a numerical value of 101 + | oneAPI 1.2 rev 1 will be represented as a numerical value of 102 + | oneAPI 1.2 rev 2 will be represented as a numerical value of 102 + +Macro Example + +.. code-block:: c + + // For oneAPI 1.2 rev 1 + #define ONEMKL_BLAS_SPEC_VERSION 102 + + // For oneAPI 1.2 rev 2 + #define ONEMKL_DFT_SPEC_VERSION 102 + + // For oneAPI 1.3 rev 1 + #define ONEMKL_VM_SPEC_VERSION 103 + +Versioning details are defined here: https://github.com/uxlfoundation/oneAPI-spec/blob/main/doc/versioning.rst#provisional-versions .. _onemkl_pre_post_conditions: