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

enhance Clang easyblock to add support for building with AMDGPU offload #2684

Merged
merged 2 commits into from
May 25, 2022

Conversation

nordmoen
Copy link
Contributor

(created using eb --new-pr)

@nordmoen
Copy link
Contributor Author

Note that this addition also makes a slight change to the OpenMP offloading checks for CPU and Nvidia. This was done to clean up handling for the different architectures. I have tested these changes with Clang going back to 9.0.1 with and without CUDA and AMDGPU (only tested for version 12 and 13 of Clang)

@boegel boegel changed the title Add AMDGPU offload support to Clang enhance Clang easyblock to add support for building with AMDGPU offload Mar 1, 2022
@boegel boegel added this to the 4.x milestone Mar 1, 2022
easybuild/easyblocks/c/clang.py Show resolved Hide resolved
easybuild/easyblocks/c/clang.py Outdated Show resolved Hide resolved
@boegel
Copy link
Member

boegel commented May 24, 2022

Test report by @boegel

Overview of tested easyconfigs (in order)

  • SUCCESS Clang-9.0.1-GCC-8.3.0-CUDA-10.1.243.eb
  • SUCCESS Clang-11.0.1-gcccuda-2020b.eb
  • SUCCESS Clang-13.0.1-GCCcore-11.2.0.eb

Build succeeded for 3 out of 3 (3 easyconfigs in total)
node3303.joltik.os - Linux RHEL 8.4, x86_64, Intel(R) Xeon(R) Gold 6242 CPU @ 2.80GHz (cascadelake), 1 x NVIDIA Tesla V100-SXM2-32GB, 510.47.03, Python 3.6.8
See https://gist.github.com/6f6a9fe4bab5efa50dbfe16c0e60132a for a full test report.

@boegel boegel merged commit b7fb970 into easybuilders:develop May 25, 2022
Comment on lines +517 to +531
# Detect OpenMP support for CPU architecture
arch = get_cpu_architecture()
# Check architecture explicitly since Clang uses potentially
# different names
if arch == X86_64:
arch = 'x86_64'
elif arch == POWER:
arch = 'ppc64'
elif arch == AARCH64:
arch = 'aarch64'
else:
print_warning("Unknown CPU architecture (%s) for OpenMP library check!" % arch)
custom_paths['files'].extend(["lib/libomptarget.%s" % shlib_ext,
"lib/libomptarget.rtl.%s.%s" % (arch, shlib_ext)])
# If building for CUDA check that OpenMP target library was created
Copy link
Member

Choose a reason for hiding this comment

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

This should have been version restricted as it is causing sanity checks to fail with Clang-11.0.1-GCCcore-10.2.0.eb

Copy link
Member

Choose a reason for hiding this comment

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

I said that because of https://gist.github.com/boegelbot/952bd8e34ed36a074a6e1fb7ad4f0ad9 but waiting on other test reports to confirm

Copy link
Member

Choose a reason for hiding this comment

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

@ocaisa Worked fine with Clang-11.0.1-gcccuda-2020b.eb though in my test report?

Copy link
Member

Choose a reason for hiding this comment

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

Yeah, being investigated, may have just been a fluke

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants