PI Plugin Versioning #5412
Replies: 4 comments 1 reply
-
Tagging @smaslov-intel |
Beta Was this translation helpful? Give feedback.
-
Yes, that was the original intention, see llvm/sycl/include/CL/sycl/detail/pi.h Line 1765 in 844d7b6 We should also connect plugin's version with it's supported PI API version, such that incompatibilities are detected and clearly reported. llvm/sycl/include/CL/sycl/detail/pi.h Line 25 in 844d7b6 |
Beta Was this translation helpful? Give feedback.
-
That's interesting thanks @smaslov-intel, so as I understand Also would this mechanism be able to track changes to PI plugins not necessarily related to conforming to the PI API, for bug fixes, etc, if not perhaps we could have a patch component as well, which doesn't correspond to the PI API version? |
Beta Was this translation helpful? Give feedback.
-
There is some trivial use of llvm/sycl/plugins/opencl/pi_opencl.cpp Line 1475 in fc0d28a It can be improved by recognizing minor/major version change and only reject plugins that have backward incompatible differences. There is also some use of But it is also sporadic and not very well defined. I suggest that we define unified versioning across plugins and start using that: llvm/sycl/include/CL/sycl/detail/pi.h Line 1765 in 844d7b6 Today, the llvm/sycl/include/CL/sycl/detail/pi.h Line 52 in fc0d28a Maybe we can define PluginVersion to be of the form "major.minor.ordinal", where "major.minoir" repeats PI API version, and "ordinal" is a plugin-specific ordinal number of the last change-set in that plugin (with the only requirement is that it should be monotonically increasing)?
|
Beta Was this translation helpful? Give feedback.
-
I've been considering proposing the idea of having versioning for PI plugins, along the lines of the SYCL runtime library versioning (https://github.com/intel/llvm/blob/sycl/sycl/doc/PreprocessorMacros.md#version-macros) so that the version of specific backends can increment and be tracked independent of the SYCL runtime version.
Primarily I was considering this for the CUDA and HIP backends, however, I thought it would make sense if there was a consistent mechanism for this across all backends in DPC++.
What are other people's thoughts on this?
@intel/llvm-reviewers-runtime
Beta Was this translation helpful? Give feedback.
All reactions