-
Notifications
You must be signed in to change notification settings - Fork 17
Moving GPU memory management to OperationManager (clean) #857
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
Conversation
stiber
left a comment
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.
Not sure if this is ready for review, as no request was made. I will point out some things:
- Make sure that GPU regression tests have been run manually and note that in the conversation.
- This PR can't be simply merged. Checking the different branches, it appears that it is three commits behind SharedDevelopment. Follow our SWE process and merge SharedDevelopment into this branch, re-test it and ensure it works, then request again that it be reviewed.
|
@NicolasJPosey to run GPU regression and report back on pass/fail status. |
stiber
left a comment
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.
Pending GPU testing and approval by @NicolasJPosey, this looks good to go!
This was moved out of GPU model and into AllSpikingNeurons_d.cpp a while back.
|
@stiber I am not sure how it got through, but a device side function that was previously in GPUModel.cpp was causing a compile error. This was moved into the AllSpikingNeurons_d.cpp a while back so I just removed it from GPUModel. The medium connected dataset passed regression testing and the large long dataset ran to completion without any errors so I will approve the PR. Since I committed a new change, you may have to re-approve. |
NicolasJPosey
left a comment
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.
GPU regression test-medium-connected and test-large-long both pass.
Supersedes
This PR supersedes #841.
The previous pull request contained too many auto-generated or formatting-related file changes, which made it difficult to review effectively. This PR presents a cleaner version of the same core changes, with unnecessary noise removed, and incorporates the feedback provided in #841.
Related Issues
Closes #131
Closes #821
Closes #825
Description
This PR completes the integration of GPU memory management operations —
copyFromGPUanddeallocateGPUMemory— into theOperationManagerframework, extending the pattern previously established withcopyToGPU. All GPU operations are now standardized asstd::function<void()>callbacks registered during class construction. This change eliminates hardcoded call chains inGPUModel, centralizes GPU logic dispatch, and improves modularity and maintainability.Key changes include:
copyFromGPUanddeallocateGPUMemoryto take no parametersOperationManager::execute(...)#ifdef USE_GPUguards where appropriatecopyToGPUlogic