Previously cuDNN downloads page used to have different binaries for different minor versions of CUDART and CUDART didn’t guarantee compatibility across minor versions. So I assumed that the cuDNN CUDART version (as reported by
cudnnGetCudartVersion) should match with the actual CUDART version (as reported by
cudaRuntimeGetVersion) being used.
Since CUDA 11.1, there is a new policy for compatibility across minor versions:
First introduced in CUDA 11.1, CUDA Enhanced Compatibility provides two benefits:
- By leveraging semantic versioning across components in the CUDA Toolkit, an application can be built for one CUDA minor release (such as 11.1) and work across all future minor releases within the major family (such as 11.x).
By leveraging the semantic versioning starting with CUDA 11, components in the CUDA Toolkit will remain binary compatible across the minor versions of the toolkit. In order to maintain binary compatibility across minor versions, the CUDA runtime no longer bumps up the minimum driver version required for every minor release - this only happens when a major release is shipped. This feature is called CUDA Enhanced Compatibility.
cuDNN 8.1 release had a single binary for all minor versions of CUDA 11.
cudnnGetCudartVersion reports CUDA 11.2. Hence, trying to exactly match the cuDNN CUDART version to the actual CUDART version might be too strict (and probably leads to false alarms to people trying to use cuDNN 8.1 on CUDA 11.0 or 11.1).
- To what level should the CUDART runtime version used (
cudaRuntimeGetVersion) and the CUDART version reported by cuDNN (cudnnGetCudartVersion`) match?