-
Notifications
You must be signed in to change notification settings - Fork 118
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
Remove usage of -DDISABLE_OPENACC (GPU build simplification) #2653
Conversation
- always use Random123 via unified memory support - some of the cpp files were avoidit it via -DDISABLE_OPENACC but with the addition of RANDOM construct, the Random123 streams are allocated during model setup. So it's better to done this in one way unless there is performance degradation.
This comment has been minimized.
This comment has been minimized.
✔️ 2fd11a1 -> Azure artifacts URL |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #2653 +/- ##
==========================================
- Coverage 66.19% 66.18% -0.02%
==========================================
Files 559 559
Lines 108937 108939 +2
==========================================
- Hits 72109 72098 -11
- Misses 36828 36841 +13 ☔ View full report in Codecov by Sentry. |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I must say I'm not familiar why we disabled OpenACC with those files but I don't see any issue enabling OpenACC/Unified memory.
Have you tested this branch with corenrn-perf
CI in case there is any performance degradation?
@iomaganaris. Yes - https://bluebrainproject.slack.com/archives/C032L6U24MB/p1704732829835149
Here is the background:
Hence the initial introduction of the Today, we don't have this constraint - thanks to unified memory-related changes from Olli. But we thought if artificial cells are going to execute on CPU, why allocate those streams using CUDA unified memory? So we kept it as is. With Michael changes from Random123, we are going to allocate Random123 streams from And just to avoid this confusion, I thought why not remove it and make it simple? (NMODL should also remove |
See neuronsimulator/nrn/pull/2653 for details/motivation
See neuronsimulator/nrn/pull/2653 for details/motivation
squashed merge of #2653 commit 2fd11a1 Author: Pramod Kumbhar <[email protected]> Date: Mon Jan 8 22:26:20 2024 +0100 revert part of the commit: unified memory when CORENEURON_ENABLE_GPU is ON commit cb7b3f6 Author: Pramod Kumbhar <[email protected]> Date: Mon Jan 8 17:12:04 2024 +0100 make clang-format happy commit ff6bf40 Author: Pramod Kumbhar <[email protected]> Date: Mon Jan 8 16:59:26 2024 +0100 Remove usage of -DDISABLE_OPENACC (GPU build simplification) - always use Random123 via unified memory support - some of the cpp files were avoidit it via -DDISABLE_OPENACC but with the addition of RANDOM construct, the Random123 streams are allocated during model setup. So it's better to done this in one way unless there is performance degradation.
✔️ 47e79ba -> Azure artifacts URL |
This comment has been minimized.
This comment has been minimized.
✔️ c5a31fd -> Azure artifacts URL |
* See neuronsimulator/nrn/pull/2653 for details/motivation * We now always use unified memory for all Random123 usage
Quality Gate passedKudos, no new issues were introduced! 0 New issues |
✔️ e41dd09 -> Azure artifacts URL |
-DDISABLE_OPENACC
but with the addition of RANDOM construct, the Random123 streams are allocated during model setup and hence should be allocated via unified memory. So it's better to do this in one way everywhere (unless there is performance degradation).See Olli's comment:
For the setup functions (under io/*) and two artificial cells, I don't think there can be a performance impact.
CI_BRANCHES:NMODL_BRANCH=master,