tra added inline comments.

================
Comment at: clang/lib/Driver/ToolChains/Cuda.cpp:161
+      if (FS.exists(LibDevicePath + "/libdevice.10.bc")) {
+        Version = CudaVersion::LATEST;
+        DetectedVersionIsNotSupported = Version > 
CudaVersion::LATEST_SUPPORTED;
----------------
emankov wrote:
> Do we have any other mechanism besides version.txt for determining an exact 
> CUDA version? Setting the latest version in case of absence of version.txt 
> doesn't suit all the needs: sometimes the exact version is taken into 
> account, for instance in [[ 
> https://github.com/ROCm-Developer-Tools/HIPIFY#clang | hipify-clang ]].
Not easily. 

We could try running one of SDK binaries with `--version`. This would be 
fragile as the tool version does not necessarily match the SDK's  and NVIDIA 
has already started versioning elements per-component. E.g. some shared 
libraries in 11.1 are already versioned as 10.2, 11.0, 11.1 and 11.2. There are 
also situations when we had to cherry-pick a tool from a different release in 
order to work around a critical bug. We don't want to change compiler's idea of 
CUDA version based on that.

We could parse CUDA headers and try finding CUDA_VERSION macro. That's 
feasible. It may be somewhat fragile if we just search for a text string 
'#define CUDA_VERSION XXXX' -- nvidia may change it. On the other hand it's not 
that much worse than relying on version.txt.  It also does not carry complete 
version, only major.minor, so we will not be able to tell `11.0 `apart from 
`11.0 update 1`. Probably not a big deal. I don't think we've needed it so far.

We could do something like this:
* if version.txt is there -- use it
* otherwise if cuda.h is found, extract version from CUDA_VERSION macro
* if that failed, use libdevice bitcode format to detect CUDA-7.0
* fall back to "last supported version" otherwise



Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D89752/new/

https://reviews.llvm.org/D89752

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to