Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion easybuild/framework/easyblock.py
Original file line number Diff line number Diff line change
Expand Up @@ -3360,7 +3360,7 @@ def sanity_check_cuda(self, cuda_dirs=None):

fail_msgs = []
cfg_ccs = build_option('cuda_compute_capabilities') or self.cfg.get('cuda_compute_capabilities', None)
ignore_failures = not build_option('cuda_sanity_check_error_on_fail')
ignore_failures = not build_option('cuda_sanity_check_error_on_failed_checks')
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there's a few places where this appears in text output as --*cuda-sanity-check-error-on-fail, those would need to be updated

Copy link
Copy Markdown

@ocaisa ocaisa May 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In my testing yesterday there were some differences between the options in my test run outputs and the actual options, I think caught them all...but not sure how to keep these consistent

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, there are 10 places that need updating (7 in comments and 3 in output)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point, will fix

strict_cc_check = build_option('cuda_sanity_check_strict')
accept_ptx_as_devcode = build_option('cuda_sanity_check_accept_ptx_as_devcode')
accept_missing_ptx = build_option('cuda_sanity_check_accept_missing_ptx')
Expand Down
2 changes: 1 addition & 1 deletion easybuild/tools/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ def mk_full_default_path(name, prefix=DEFAULT_PREFIX):
'container_build_image',
'cuda_sanity_check_accept_ptx_as_devcode',
'cuda_sanity_check_accept_missing_ptx',
'cuda_sanity_check_error_on_fail',
'cuda_sanity_check_error_on_failed_checks',
'cuda_sanity_check_strict',
'debug',
'debug_lmod',
Expand Down
29 changes: 15 additions & 14 deletions easybuild/tools/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -406,30 +406,31 @@ def override_options(self):
"--cuda-sanity-check-accept-ptx-as-devcode, "
"or made more stringent using --cuda-sanity-check-strict.",
'strlist', 'extend', None),
'cuda-sanity-check-accept-missing-ptx': ("CUDA sanity check also passes if PTX code for the highest "
'cuda-sanity-check-accept-missing-ptx': ("Relax CUDA sanity check to accept that PTX code for the highest "
"requested CUDA compute capability is not present (but will "
"print a warning)",
None, 'store_true', False),
'cuda-sanity-check-accept-ptx-as-devcode': ("CUDA sanity check also passes if requested device code is "
"not present, as long as PTX code is present that can be "
"JIT-compiled for each target in --cuda-compute-capabilities "
"E.g. if --cuda-compute-capabilities=8.0 and a binary is "
"found in the installation that does not have device code for "
"8.0, but it does have PTX code for 7.0, the sanity check "
"will pass if, and only if, this option is True. "
'cuda-sanity-check-accept-ptx-as-devcode': ("Relax CUDA sanity check to accept that requested device code "
"is not present, as long as PTX code is present that can be "
"JIT-compiled for each target in --cuda-compute-capabilities. "
"For example, if --cuda-compute-capabilities=8.0 and a binary "
"is found in the installation that does not have device code "
"for 8.0, but it does have PTX code for 7.0, the sanity check "
"will pass if, and only if, this option is enabled. "
"Note that JIT-compiling means the binary will work on the "
"requested architecture, but is it not necessarily as well "
"optimized as when actual device code is present for the "
"requested architecture ",
None, 'store_true', False),
'cuda-sanity-check-error-on-fail': ("If True, failures in the CUDA sanity check will produce an error. "
"If False, the CUDA sanity check will be performed, and failures will "
"be reported, but they will not result in an error",
None, 'store_true', False),
'cuda-sanity-check-error-on-failed-checks': ("If enabled, failures in the CUDA sanity check will produce "
"an error. If disabled, the CUDA sanity check will be "
"performed and failures will be reported through warnings, "
"but they will not result in an error",
None, 'store_true', False),
'cuda-sanity-check-strict': ("Perform strict CUDA sanity check. Without this option, the CUDA sanity "
"check will fail if the CUDA binaries don't contain code for (at least) "
"all compute capabilities defined in --cude-compute-capabilities, but will "
"accept if code for additional compute capabilities is present. "
"all compute capabilities defined in --cude-compute-capabilities, "
"but will accept if code for additional compute capabilities is present. "
"With this setting, the sanity check will also fail if code is present for "
"more compute capabilities than defined in --cuda-compute-capabilities.",
None, 'store_true', False),
Expand Down
2 changes: 2 additions & 0 deletions easybuild/tools/systemtools.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,12 @@

Authors:

* Kenneth Hoste (Ghent University)
* Jens Timmerman (Ghent University)
* Ward Poelmans (Ghent University)
* Jasper Grimm (UoY)
* Jan Andre Reuter (Forschungszentrum Juelich GmbH)
* Caspar van Leeuwen (SURF)
"""
import csv
import ctypes
Expand Down
Loading