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

Fix deadlocks by enabling eager module loading in libcudacxx tests. #3585

Merged
merged 5 commits into from
Jan 30, 2025
Merged
Show file tree
Hide file tree
Changes from 2 commits
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
3 changes: 3 additions & 0 deletions ci/matrix.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ workflows:
# - {jobs: ['test'], project: 'thrust', std: 17, ctk: 'curr', cxx: ['gcc12', 'clang16']}
#
override:
- {jobs: ['test'], project: ['libcudacxx'], std: 'max', cxx: ['gcc', 'clang'], gpu: 't4', sm: 'gpu'}
- {jobs: ['test'], project: ['libcudacxx'], std: 'max', cxx: ['gcc', 'clang'], gpu: 'rtx2080', sm: 'gpu'}
- {jobs: ['test'], project: ['libcudacxx'], std: 'max', cxx: ['gcc', 'clang'], gpu: 'v100', sm: 'gpu'}

pull_request:
# Old CTK/compiler
Expand Down
8 changes: 5 additions & 3 deletions libcudacxx/test/utils/libcudacxx/test/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ def __init__(self, lit_config, config):
self.link_shared = self.get_lit_bool("enable_shared", default=True)
self.debug_build = self.get_lit_bool("debug_build", default=False)
self.exec_env = dict(os.environ)
self.exec_env["CUDA_MODULE_LOADING"] = "EAGER"
self.use_target = False
self.use_system_cxx_lib = False
self.use_clang_verify = False
Expand Down Expand Up @@ -201,7 +202,8 @@ def get_modules_enabled(self):
def make_static_lib_name(self, name):
"""Return the full filename for the specified library name"""
if self.is_windows:
assert name == "c++" # Only allow libc++ to use this function for now.
# Only allow libc++ to use this function for now.
assert name == "c++"
return "lib" + name + ".lib"
else:
return "lib" + name + ".a"
Expand Down Expand Up @@ -308,7 +310,7 @@ def configure_cxx(self):
cxx is not None and os.path.basename(cxx) == "clang-cl.exe"
)

## Build CXXCompiler manually for NVRTCC
# Build CXXCompiler manually for NVRTCC
if nvrtc is True:
cxx_type = "nvrtcc"
self.cxx = CXXCompiler(
Expand Down Expand Up @@ -751,7 +753,7 @@ def configure_compile_flags(self):
if compute_archs == "native":
compute_archs = self.get_compute_capabilities()

compute_archs = set(sorted(re.split("\s|;|,", compute_archs)))
compute_archs = set(sorted(re.split("\\s|;|,", compute_archs)))
for s in compute_archs:
# Split arch and mode i.e. 80-virtual -> 80, virtual
arch, *mode = re.split("-", s)
Expand Down
Loading