-
Notifications
You must be signed in to change notification settings - Fork 110
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RFC|oneMKL]Enable programmatic versioning #561
Conversation
@uxlfoundation/oneapi-spec-maintainers: Please review this versioning proposal |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I do not understand what is being proposed here.
Is the idea that each implementation of the spec gets to decide how to provide a version to the user (whether by a version string, a #define
, an int getSpecVersion()
function)? Then this change to the spec only specifies that the end of this string/macro/int has a certain representation?
Yes. The goal of this RFC is to ensure that every implementation of the spec provides a numerically comparable value for its compliance with the spec version, through the proposed macros. The implementation can additionally provide more ways to query that information, like APIs, but we do not mandate that in this proposal. |
source/elements/oneMKL/source/architecture/other_architecture.inc.rst
Outdated
Show resolved
Hide resolved
@akukanov @mkrainiuk @rscohn2 @spencerpatty if everything looks okay, then please provide your approval. Thank you! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Acceptable from my perspective. Approved
@aelizaro @paveldyakov @lhuot @zettai-reido @sknepper can you please provide your reviews? Thank you! |
source/elements/oneMKL/source/architecture/other_architecture.inc.rst
Outdated
Show resolved
Hide resolved
|
||
The macros for each domain are listed as follows: | ||
|
||
| ONEMKL_BLAS_SPEC_VERSION |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If/When we switch to oneMATH name for the Specification and Interfaces project, will we also switch the macro names ? maybe we want to delay this merge until those are made to not have to deprecate/switch ... ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@spencerpatty The changes you mentioned are from oneapi-src/oneMKL#564 which is an RFC in one of the implementations of this spec. The implementation can choose to take any direction, whether or not it is in compliance with the specification.
@Rbiessy you approved this PR earlier so there are 2 questions -
- Does your RFC([RFC] oneMKL Interface renaming oneapi-src/oneMKL#564) block this RFC?
- Does your RFC aim to make changes to the oneAPI specification eventually? If yes, can you please create a placeholder Issue/PR in this project and mention it here? If not, please note that your oneMKL Interfaces RFC breaks compliance with the oneAPI specification as of the current status of your RFC.
Note point number 5 in https://github.com/mkrainiuk/oneMKL/blob/rfcs/README.md#rfc-ratification-process
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had an offline discussion with the team and we came to an agreement that the oneMATH
proposal has a lot of work ahead of it, and that name change will have to be made in not just oneMKL Interfaces, but also in multiple places across oneAPI spec and other documents. Since this change will have a wider impact than just this specific part of document where this PR targets, it is better to make that change at that time. It will not affect the core version schema or approach proposed here.
This PR and RFC is NOT blocked by @Rbiessy 's RFC in oneMKL Interfaces.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It does not matter to me which RFC is implemented first. The RFC for renaming is planning to rename the occurrences of all the macros using ONEMKL
.
The RFC describes how it impacts the specification. I read the ratification process, it does not say that an issue needs to be created. @mkrainiuk could this be clarified in the RFC process? I created #580 but I have some concerns the discussions will be split in 2 different places now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @Rbiessy, good point, we need to clarify it in the ratification process, and I think any changes related to API should be discussed in Spec only, since opensource is just an implementation of the Spec, I believe it should just follow what was decided for Spec. In this particular case I guess the problem is that we have opensource project migration (which is not related to the Spec) combined with renaming (which is Spec related and should be started in the Spec).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for clarifying, @mkrainiuk . @spencerpatty @Rbiessy Let's proceed with this RFC with the oneMKL
naming. When the oneMATH
proposal is made to the oneAPI spec, it can address these macros and other changes across the oneAPI spec simultaneously.
For your information, below is what I propose for defining a spec version macro for oneDPL. Use as you like; in case of feedback please comment in the PR #591.
|
ca8205c
to
602c87d
Compare
Motivation
Inspiration
revision
number:MAJOR.MINOR
version, with ongoing progress marked asTechnical Report <number>
. The_OPENMP
macro provides a release date which maps onto a specification version, like this:Proposal
<MAJOR><MINOR><REVISION>
such that MINOR and REVISION have two digits.