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

switch to C++20 #5246

Open
wants to merge 6 commits into
base: dev
Choose a base branch
from

Conversation

psychocoderHPC
Copy link
Member

@psychocoderHPC psychocoderHPC commented Jan 8, 2025

  • update docuemntation
  • update CI tests
    • remove HIP 5.X
    • remove CUDA 11.X
    • remove GCC9
  • set in all CMake files the C++ standard to C++20
  • update to mallocMC 2.7.0-dev
  • This update is required to remove a deprecated warning triggered when switching to C++20 because most volatile usages are deprecated with C++20.
GIT_AUTHOR_NAME="Third Party" GIT_AUTHOR_EMAIL="[email protected]" \
  git subtree pull --prefix thirdParty/mallocMC \
  [email protected]:ComputationalRadiationPhysics/mallocMC.git dev --squash
rm -r thirdParty/mallocMC/alpaka
git merge --continue

@psychocoderHPC psychocoderHPC added component: core in PIConGPU (core application) component: PMacc in PMacc refactoring code change to improve performance or to unify a concept but does not change public API component: examples PIConGPU or PMacc examples component: tests unit tests labels Jan 8, 2025
@psychocoderHPC psychocoderHPC added this to the 0.9.0 / next stable milestone Jan 8, 2025
@psychocoderHPC psychocoderHPC changed the title switch to C++ switch to C++20 Jan 8, 2025
Copy link
Contributor

@ikbuibui ikbuibui left a comment

Choose a reason for hiding this comment

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

This line in the readme needs to be updated
[![Language](https://img.shields.io/badge/language-C%2B%2B17-orange.svg)](https://isocpp.org/)

- update docuemntation
- update CI tests
  - remove HIP 5.X
  - remove CUDA 11.X
  - remove GCC9
- set in all CMake files the C++ standard to C++20
@psychocoderHPC psychocoderHPC marked this pull request as draft January 14, 2025 15:34
@@ -140,7 +140,7 @@ namespace mallocMC
* compile time. The volatile workaround has no negative effects on the
* register usage in CUDA.
*/
alloc(AlpakaDevice& dev, AlpakaQueue& queue, volatile size_t size)
alloc(AlpakaDevice& dev, AlpakaQueue& queue, size_t size)
Copy link
Contributor

Choose a reason for hiding this comment

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

is this safe? The comment above indicates that the volatile is really required.

Copy link
Member Author

Choose a reason for hiding this comment

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

good catch!
no it is not safe, therefor I set the PR to draft, I was testing first if this will solve the Ci issues. I will prepare a PR to update mallocMC to latest dev where the volatile is removed. Volatile was a workaround for a workaround which is most likely not required anymore, therefore it is already removed upstream.

psychocoderHPC and others added 3 commits January 15, 2025 09:23
- `boost::call_traits` run into compile issues when using clang 18 and cuda 12.1 and boost 1.77
- fix `CONST_VECTOR`
  - for clang CUDA the guard macros was wrongly set
127b29fabb Merge pull request ComputationalRadiationPhysics#271 from chillenzer/topic-flatterScatter
7846a36fc7 Add submodule to CI
42a96e94ae Remove redundant memset
36e91a9dcf Update license headers
660ad4fffd Minor adjustments to CI
7665162fa1 Update CMakeLists.txt including version bump for Catch2
10221ebded Add catch2 as submodule
8115fc93c6 Update tests
8485629cf2 Update examples
4d0b90b6fc Update LICENSE, README and Usage
745cb2a333 Add FlatterScatter
0bdd7b5117 Run clang-format
2596432b50 Update utils
e8529c4575 Update XMallocSIMD
d752602f19 Update old creation policies
4058862dcc Update device_allocator.hpp
b48b750431 Update allocator.hpp
76c4f46a61 Merge pull request ComputationalRadiationPhysics#270 from chillenzer/update-before-flatterscatter
363090535e Merge pull request ComputationalRadiationPhysics#269 from chillenzer/update-zenodo
16c5d0de5b Run clang-format
61154b1098 Update utils
0b69f038ff Update XMallocSIMD
79c1962f99 Update old creation policies
4a6a444911 Update device_allocator.hpp
2a9e806119 Update allocator.hpp
1fc71c5294 Update .zenodo.json
f6af760bd7 Merge pull request ComputationalRadiationPhysics#268 from chillenzer/update-tooling
8c897de3d4 Merge pull request ComputationalRadiationPhysics#267 from chillenzer/update-clang-format
8a1281a0bb Update .gitignore
14ef1ec4c0 Minor tweaks in github action
e7450d9f44 Clean and add to .clang-tidy
fbefa18015 Run clang-format
1fea13bb87 Copy .clang-format from alpaka
29d275791d Merge pull request ComputationalRadiationPhysics#266 from chillenzer/add-pre-commit
bd28b52b32 Remove outdated enforce-ascii from pre-commit config
66a7d41914 Add pre-commit lite action
85a1e480b1 Run pre-commit
ff530bb0b5 Add .pre-commit-config.yaml
486a2956d0 Merge pull request ComputationalRadiationPhysics#264 from chillenzer/bump-C++20
602e95db5f Bump C++ version to 20
0b9231a754 Merge pull request ComputationalRadiationPhysics#263 from chillenzer/alpaka-1.2.0
fa52618c4f Run clang-format
c9c5ae94e4 Bump version of clang-format, its action and checkout
25f42e3aea Update alpaka version number in INSTALL.md
1e6f75bbf8 Merge commit '30ee4f3ab8d7e42ef20cb5495cc3a94b15193abb' as 'alpaka'
30ee4f3ab8 Squashed 'alpaka/' content from commit fe9436d5
4513a7a81c Remove alpaka to pull the latest release
2689825301 LICENSE file remove C-comment (ComputationalRadiationPhysics#262)
7bf50bf587 Bump version to 3.0.0 (ComputationalRadiationPhysics#261)
REVERT: 89c9597c91 Release 2.6.0 (ComputationalRadiationPhysics#260)

git-subtree-dir: thirdParty/mallocMC
git-subtree-split: 127b29fabbb01c9a055bb5d21213daf2db5e6843
@psychocoderHPC psychocoderHPC marked this pull request as ready for review January 15, 2025 09:04
.gitlab-ci.yml Outdated
@@ -9,6 +9,7 @@ stages:
variables:
CONTAINER_TAG: "3.2"
PIC_CI_MAINLINE: "TRUE"
GIT_SUBMODULE_UPDATE_FLAGS: normal
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
GIT_SUBMODULE_UPDATE_FLAGS: normal
GIT_SUBMODULE_STRATEGY: normal

@psychocoderHPC psychocoderHPC force-pushed the topic-updateToCpp20 branch 2 times, most recently from d543a51 to 85338d2 Compare January 15, 2025 13:26
Submodules from third party dependencies should not be fetched to avoid
issues between subtree third party dependencies.
Third party submodules will be placed into the top level project tree
which can create conflicts between submodules of PIConGPU and
dependencies.
This issues is abserved e.g. with catch2.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: core in PIConGPU (core application) component: examples PIConGPU or PMacc examples component: PMacc in PMacc component: tests unit tests refactoring code change to improve performance or to unify a concept but does not change public API
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants