Skip to content
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

Document CUDAcompat ECs #201

Open
Flamefire opened this issue Jul 5, 2023 · 0 comments
Open

Document CUDAcompat ECs #201

Flamefire opened this issue Jul 5, 2023 · 0 comments

Comments

@Flamefire
Copy link
Contributor

Flamefire commented Jul 5, 2023

We need an easy-to-find place explaining what those do, when they are required and which and how to use them.

Some notes as starting point (don't have the time to write the full article):

  • Short: Required when the system driver doesn't support a new CUDA major version (e.g. 10.2 driver, CUDA 11 ECs)
  • Refer to NVIDAs documentation about the compatibility driver
  • Newer versions of CUDAcompat should be preferred (i.e. 11.7 over 11.6)
  • Only major version really matters, so can use CUDAcompat-11 which refers to latest CUDAcompat-11.x which refers to latest CUDAcompat-11.x-y (y=driver release version)
  • CUDAcompat supports a range of (minimal) system driver versions, so the latest CUDAcompat might not support a (much) older system driver -> Might need to choose a lower one, e.g. 11.6 instead of 11 or 11.7
  • CUDAcompat module is required for any CUDA program compiled with new major version -> CUDAcompat should be dependency of CUDA module

Example parse hook:

if ec.name in ('CUDA', 'CUDAcore') and ec.toolchain.is_system_toolchain():
    if LooseVersion(ec.version) >= '11':
        ec.log.info("[parse hook] Adding CUDA 11 compat package")
        ec['dependencies'].append(('CUDAcompat', '11', '', True))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant