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

CI: Ubuntu 22.04/24.04 in GitHub Actions, CUDA 11.7+ #5731

Open
wants to merge 21 commits into
base: development
Choose a base branch
from

Conversation

EZoni
Copy link
Member

@EZoni EZoni commented Mar 4, 2025

The Ubuntu 20.04 runner image will be deprecated soon: actions/runner-images#11101.
Only support CUDA 11.7+ going forward.

To-do:

Notes

I renamed the following workflows, with the aim of not having to rename them again in the future when we upgrade version numbers:

  • NVCC 11.3 SP, now NVCC SP
  • NVCC 11.8.0 GNUmake, now NVC GNU Make
  • [email protected] NVCC/NVC++ Release [tests], now NVHPC

If you are okay with the renaming, the list of "required" workflows should be updated to reflect the new names, and I don't have the necessary access to do so.

@EZoni EZoni force-pushed the ci_upgrade_ubuntu branch from e3088de to f60a2a4 Compare March 4, 2025 18:37
@EZoni EZoni force-pushed the ci_upgrade_ubuntu branch from f7b6812 to cbc0ccc Compare March 4, 2025 19:10
@EZoni EZoni force-pushed the ci_upgrade_ubuntu branch from fc7b511 to 239d529 Compare March 4, 2025 21:28
@EZoni
Copy link
Member Author

EZoni commented Mar 4, 2025

I see this error message from the Intel / oneAPI ICC SP&DP workflow:

icpc: remark #10441: The Intel(R) C++ Compiler Classic (ICC) is deprecated and will be removed from product release in the second half of 2023. The Intel(R) oneAPI DPC++/C++ Compiler (ICX) is the recommended compiler moving forward. Please transition to use this compiler. Use '-diag-disable=10441' to disable this message.

Is there a specific reason why we want to keep testing builds with ICC, even though it is deprecated since 2023?

@EZoni EZoni force-pushed the ci_upgrade_ubuntu branch from 239d529 to 3de1574 Compare March 4, 2025 21:45
@EZoni
Copy link
Member Author

EZoni commented Mar 4, 2025

@ax3l @WeiqunZhang

Do you have insight on my question above, #5731 (comment)? I don't see ICC being used in AMReX CI workflows, if I'm not mistaken. If this is indeed obsolete, we can migrate this last ICC build in WarpX to ICX (DPC++) as well, or remove it if redundant.

@EZoni EZoni force-pushed the ci_upgrade_ubuntu branch from fda02d1 to 2771fe4 Compare March 5, 2025 04:49
@EZoni EZoni force-pushed the ci_upgrade_ubuntu branch from 87c1f66 to 8d4ab7a Compare March 5, 2025 18:22
@EZoni EZoni mentioned this pull request Mar 5, 2025
@EZoni EZoni force-pushed the ci_upgrade_ubuntu branch from 4d90f1b to 694fce6 Compare March 6, 2025 00:30
@EZoni EZoni force-pushed the ci_upgrade_ubuntu branch from 694fce6 to 89c2af4 Compare March 6, 2025 01:36
@EZoni EZoni changed the title [WIP] CI: upgrade Ubuntu version [WIP] CI: Ubuntu 24.04 in GitHub Actions Workflows Mar 6, 2025
@EZoni EZoni requested review from dpgrote, WeiqunZhang and ax3l March 6, 2025 19:36
@EZoni EZoni changed the title [WIP] CI: Ubuntu 24.04 in GitHub Actions Workflows CI: Ubuntu 24.04 in GitHub Actions Workflows Mar 6, 2025
@EZoni EZoni requested a review from atmyers March 6, 2025 21:43
Copy link
Member

@dpgrote dpgrote left a comment

Choose a reason for hiding this comment

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

Looks good to me! Thanks!

ax3l

This comment was marked as outdated.

@@ -101,7 +101,7 @@ jobs:

build_3D_sp:
name: GCC 3D & RZ w/ MPI, single precision
runs-on: ubuntu-22.04
Copy link
Member

Choose a reason for hiding this comment

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

I admittedly had intentionally a few 22.04 runners because it will cover older g++ and clang++ compilers that way.

Copy link
Member

Choose a reason for hiding this comment

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

Please revert this one.

Copy link
Member Author

Choose a reason for hiding this comment

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

Done in dac25b8.

@@ -18,7 +18,7 @@ jobs:
# intel-basekit intel-hpckit are too large in size
build_icc:
name: oneAPI ICC SP&DP
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
Copy link
Member

@ax3l ax3l Mar 7, 2025

Choose a reason for hiding this comment

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

Please remove the "old" ICC, it is EOL since mid 2023 and I already removed it from pyAMReX.
AMReX-Codes/pyamrex#409

Intel only supports ICX (oneAPI compilers) going forward. (The two we have below in this script.)

Copy link
Member Author

Choose a reason for hiding this comment

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

Done in 43e0a32.

Copy link
Member Author

Choose a reason for hiding this comment

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

Now that the oneAPI ICC SP&DP workflow job has been removed, it should aslo be removed from the list of "required" workflows in the repository settings by one of the owners.

@@ -10,7 +10,7 @@ on:

jobs:
noop:
runs-on: ubuntu-latest
Copy link
Member

Choose a reason for hiding this comment

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

I would keep -latest for this, because it will never need an update that way.

Copy link
Member

Choose a reason for hiding this comment

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

Please revert this one.

Copy link
Member Author

Choose a reason for hiding this comment

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

Done in 49a2603.

name: NVCC 11.3 SP
runs-on: ubuntu-20.04
name: NVCC SP
runs-on: ubuntu-24.04
Copy link
Member

Choose a reason for hiding this comment

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

I would not go over 22.04, because that way we do not cover older CUDA compilers anymore and will likely loose compatibility.

Instead, please do something like this BLAST-ImpactX/impactx#869 and update our documentation that we only support CUDA 11.7+ now.

Copy link
Member Author

Choose a reason for hiding this comment

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

Okay, done in dd2fe9b.

The documentation does not seem to need any update, it already states 11.7+, if I'm not mistaken.

I initially chose to go for 12.6+ (and Ubuntu 24.04) because I saw that this is what they did in AMReX-Codes/amrex#4330 in AMReX.

In general isn't it a risk to mix Ubuntu 22.04 and Ubuntu 24.04 support in our CI coverage, i.e., don't we risk to have potentially holes in how we test compatibility? Shoudn't we then simply cover only Ubuntu 22.04 until it reaches EOL? I'm just trying to understand which of the two strategies, the mixed one we are setting up here or the single-version one they set up in AMReX, makes more sense, if any.

Copy link
Member Author

Choose a reason for hiding this comment

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

The documentation does not seem to need any update, it already states 11.7+, if I'm not mistaken.

Screenshot from 2025-03-06 22-18-46

Copy link
Member

@ax3l ax3l left a comment

Choose a reason for hiding this comment

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

Please see inline comments and needed documentation changes for CUDA supported versions.

@ax3l ax3l changed the title CI: Ubuntu 24.04 in GitHub Actions Workflows CI: Ubuntu 22.04/24.04 in GitHub Actions Workflows Mar 7, 2025
@ax3l ax3l added component: documentation Docs, readme and manual install backend: cuda Specific to CUDA execution (GPUs) labels Mar 7, 2025
@ax3l ax3l changed the title CI: Ubuntu 22.04/24.04 in GitHub Actions Workflows CI: Ubuntu 22.04/24.04 in GitHub Actions, CUDA 11.7+ Mar 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend: cuda Specific to CUDA execution (GPUs) component: documentation Docs, readme and manual component: tests Tests and CI install
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants