libcudacxx icon indicating copy to clipboard operation
libcudacxx copied to clipboard

There should be a way to determine supported ABI versions

Open tgamblin opened this issue 3 years ago • 0 comments

https://nvidia.github.io/libcudacxx/releases/versioning.html#libcu-abi-versioning says:

A snapshot of the codebase may support multiple ABI versions at the same time. They always use the latest available ABI version by default. The macro _LIBCUDACXX_CUDA_ABI_VERSION_LATEST from <cuda/std/version> defines the value of the latest ABI version.

New ABI versions may be introduced at any point in time, which means that the default ABI version may change in any release. A subset of older ABI versions can be used instead by defining _LIBCUDACXX_CUDA_ABI_VERSION to the desired version.

So it looks like I can figure out the latest supported ABI version, and I can try to set an ABI version, but I can't know in advance what is possible (to inform my choice for _LIBCUDACXX_CUDA_ABI_VERSION). I might want to do this to automatically match a new build with an existing installation or with binary packages I've already got on hand.

This seems to just be spelled out in the code, like this:

https://github.com/NVIDIA/libcudacxx/blob/main/include/cuda/std/detail/__config#L110-111

It would be easier to check programmatically if there were an additional #define like _LIBCUDACXX_CUDA_ABI_VERSION_OLDEST or _LIBCUDACXX_CUDA_ABI_VERSION_SUPPORTED.

tgamblin avatar Sep 20 '20 21:09 tgamblin