-
Notifications
You must be signed in to change notification settings - Fork 15
[ISSUE-783][ISSUE-773][ISSUE-319] Validation Mode and Cleanup #813
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
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…on vertices from the gpu in reverse order to match the reverse order operation of advancing vertices
… validation mode to allow for easier comparison
stiber
approved these changes
Mar 12, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #783
Closes #773
Closes #319
Description
This PR replaces and continues work from #794
Continues from work on #794:
CMAKE build types cleaned up in cmakelists
Additionally, added a new conditional flag to change the target architecture for cuda compilation.
Quickstart guide, StudentSetup, and codingConventions documentation was updated.
Added support for nvtx profiling tools. The profiling build option will enable this if the nvtx libraries are present.
About the comment in #794 about the build.sh file added to the .gitignore here: I have created a build.sh file with the intention in mind to create a simple build script with machine specific build and compile flags that eliminate the need to retype every conditional flag every time I do a cmake. Others who wish to run graphitti on their own machine can follow similarly, but since it is changed regularly to test different build and compile options it shouldn't be tracked by git. For example in my build.sh:
Implements the validation mode outlined in #319
There is a new conditional flag to turn on the validation mode
When validation mode is enabled, the MTRand on the host generates noise for each vertex every time the simulation advances. This noise is then copied to the randNoise_d buffer for use in the GPU’s advanceVertices kernel. As long as cgraphitti is also run in validation mode, the generated noise will match, ensuring that each vertex receives noise from MTRand in every advanceNeuron call, regardless of whether it is refractory or firing.
Noise is generated in reverse order, from the highest to lowest vertex, because advanceVertices processes neurons in that sequence. While it may be worth investigating whether advanceVertices should instead process vertices in their natural order, the validation mode remains functional after accounting for this behavior.
Validation mode collects and logs data on noise, Vm, summation points, and Inoise during each vertex update, saving the information to vertices.txt in the Debug output folder. However, this process is slow. The next step in validating the GPU and CPU algorithms is to analyze the exported data to identify the cause of slight deviations in simulation results.
Checklist (Mandatory for new features)
Testing (Mandatory for all changes)
test-medium-connected.xml
Passedtest-large-long.xml
Passed