-
Notifications
You must be signed in to change notification settings - Fork 18
[issue-858] GPU implementation of 911 vertices #880
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
NicolasJPosey
merged 71 commits into
PoseyDevelopment
from
issue-858-911vertices-gpu-implementation
Mar 12, 2026
Merged
Changes from all commits
Commits
Show all changes
71 commits
Select commit
Hold shift + click to select a range
08dd027
Add loadEpochInputs to OperationManager
NicolasJPosey a34356f
Add vertices device struct to 911 class
NicolasJPosey b02e61a
Merge remote-tracking branch 'origin/PoseyDevelopment' into issue-858…
NicolasJPosey aeef7d4
Add total number of events data member to InputManager
NicolasJPosey f58ad17
Initial CPU GPU architecture documentation
NicolasJPosey b456abc
Refactor of loadEpochInputs to support loading inputs to GPU
NicolasJPosey 8b54e96
Refactor getEdgeToClosestResponder method to be a All911Vertices meth…
NicolasJPosey 6340556
Forgot CPU code
NicolasJPosey 6cbb595
Some GPU implementations but is incomplete
NicolasJPosey 9209e53
Merge remote-tracking branch 'origin/PoseyDevelopment' into issue-858…
NicolasJPosey bab8265
Remove reserve call since RecordableVector doesn't implement it
NicolasJPosey 4eba0c1
Refactor internal vector use in PSAP and RESP advance logic
NicolasJPosey 9b7f77f
Convert call metrics to EventBuffers and swap push back for insert ev…
NicolasJPosey bba175c
Replace numeric bool with actual bool for readability
NicolasJPosey 46f4000
Change vector type from RecordableVector to EventBuffer
NicolasJPosey 03f598d
Merge remote-tracking branch 'origin/PoseyDevelopment' into issue-858…
NicolasJPosey 9d07ab0
Bug fix for copying spike histories from device
NicolasJPosey d8b74c2
Add a guard and debugging message for GPU random noise
NicolasJPosey b055214
Updates to support copying to and from GPU
NicolasJPosey c3893e5
Support for copying to and from GPU and make type float for now
NicolasJPosey 3fcf848
Add GPU 911 vertices to make list
NicolasJPosey 944c941
Implementation runs but results aren't quite right
NicolasJPosey 45d2f31
Fix case sensative copying of call responder types
NicolasJPosey ba7d73a
Fix bug using wrong size for queue length and utilization histories
NicolasJPosey 815e5b3
Remove debugging printfs and replace asserts with printfs for errors
NicolasJPosey 1b9541e
General cleanup
NicolasJPosey df7d22b
Free the array used to determine available servers and units in kernels.
NicolasJPosey d9f1b07
Readd support for getting dropped calls
NicolasJPosey 815f79a
Fix error if a dropped call is found after the first epoch
NicolasJPosey 6da281f
Support for noise in 911 models
NicolasJPosey 0222e4b
Add assert for random number thread count
NicolasJPosey 9c5ab92
Add support for using noise to simulate attempted redials
NicolasJPosey efe6790
Fix isFull error message to show right buffer size
NicolasJPosey d1465cc
Fix bug with waiting queue check
NicolasJPosey 9c76eaf
Debugging statements for memory analysis
NicolasJPosey ce3ebae
Add some larger 911 graphs
NicolasJPosey 6a34f93
Updates to history to support less memory usage on GPU
NicolasJPosey b228eae
Fix firing rate value
NicolasJPosey 8efb90e
Fix issue using wrong buffer size
NicolasJPosey 6365ff3
Fix getting front index when we want end index for queue length calcu…
NicolasJPosey a8e49ce
Add back in random redial attempt
NicolasJPosey 1f16f36
More updates to reduce memory usage
NicolasJPosey 495b526
Fix bug with vertex queue size
NicolasJPosey 563c28f
Another CircularBuffer size bug fix
NicolasJPosey 543412c
Fix firing rate and change epoch parameters to reduce memory
NicolasJPosey 2733dfc
Add an approximate state wide, month long configuration
NicolasJPosey 8e2b5c3
General cleanup and adding of comments
NicolasJPosey 464de26
GPU Optimizations
NicolasJPosey 3d17af3
Dataset updates
NicolasJPosey 7a2b6e5
Timing adds, documentation, and updates
NicolasJPosey 62464e7
Add regression testing documentation markdown
NicolasJPosey 50b81d8
Update after changing Abandoned and QueueLength history types
NicolasJPosey 4b6e5b3
Add small 911 test to regression script
NicolasJPosey f346aa4
Add larger 911 test
NicolasJPosey ef35442
Merge remote-tracking branch 'origin/PoseyDevelopment' into issue-858…
NicolasJPosey feab222
Remove testing datasets
NicolasJPosey 19f664a
Remove temp timing changes
NicolasJPosey 032ad01
Merge remote-tracking branch 'origin/PoseyDevelopment' into issue-858…
NicolasJPosey f1d252a
Correct how 2D arrays are copied from device to host
NicolasJPosey e32985d
Add noise state logging for debugging
NicolasJPosey 8e6bee0
Noise is now generated and used for graphs with less than 100 vertices
NicolasJPosey 6219a8f
Fix formatting
NicolasJPosey 8a11cb7
Try another clang fix
NicolasJPosey 2e7ef29
Try to fix clang in function node file
NicolasJPosey ff729f0
clang fix attempt
NicolasJPosey 1e3104e
more clang
NicolasJPosey c90f9ae
clang
NicolasJPosey 44cc254
Clean up and port some optimizations to CPU
NicolasJPosey 4f1bb1c
clang formatting
NicolasJPosey 6db008b
Rename GPU documentation file
NicolasJPosey df305dc
Remove trivial example and rewrite to clarify design of CPU implement…
NicolasJPosey File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| /** | ||
| * @file TwoUint64ArgFunctionNode.cpp | ||
| * | ||
| * @ingroup Simulator/Core/FunctionNodes | ||
| * | ||
| * @brief Stores a function with two uint64_t args to invoke. Used by operation manager to store functions to defined by an operation type. | ||
| * | ||
| * Function Signature supported : void (uint64_t,uint64_t) | ||
| * | ||
| */ | ||
|
|
||
| #include "TwoUint64ArgFunctionNode.h" | ||
| #include "Operations.h" | ||
| #include <functional> | ||
|
|
||
| /// Constructor, Function Signature: void (uint64_t, uint64_t) | ||
| TwoUint64ArgFunctionNode::TwoUint64ArgFunctionNode( | ||
| const Operations &operation, const std::function<void(uint64_t, uint64_t)> &func) | ||
| { | ||
| operationType_ = operation; | ||
| function_ = func; | ||
| } | ||
|
|
||
| /// Invokes the stored function if the sent operation type matches the operation type the function is stored as. | ||
| bool TwoUint64ArgFunctionNode::invokeFunction(const Operations &operation, uint64_t arg1, | ||
| uint64_t arg2) const | ||
| { | ||
| if (operation == operationType_) { | ||
| __invoke(function_, arg1, arg2); | ||
| return true; | ||
| } | ||
| return false; | ||
| } |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| /** | ||
| * @file TwoUint64ArgFunctionNode.h | ||
| * | ||
| * @ingroup Simulator/Core/FunctionNodes | ||
| * | ||
| * @brief Stores a function with two uint64_t args to invoke. Used by operation manager to store functions to defined by an operation type. | ||
| * | ||
| */ | ||
|
|
||
| #pragma once | ||
|
|
||
| #include "IFunctionNode.h" | ||
| #include <functional> | ||
|
|
||
| using namespace std; | ||
|
|
||
| class TwoUint64ArgFunctionNode : public IFunctionNode { | ||
| public: | ||
| /// Constructor, Function Signature: void () | ||
| TwoUint64ArgFunctionNode(const Operations &operationType, | ||
| const std::function<void(uint64_t, uint64_t)> &function); | ||
|
|
||
| /// Destructor | ||
| ~TwoUint64ArgFunctionNode() = default; | ||
|
|
||
| /// TODO: Remove when IFunctionNode supports functions with non-empty signatures | ||
| virtual bool invokeFunction(const Operations &operation) const | ||
| { | ||
| return false; | ||
| } | ||
|
|
||
| /// Invokes the stored function if the sent operation type matches the operation type the function is stored as. | ||
| virtual bool invokeFunction(const Operations &operation, uint64_t arg1, | ||
| uint64_t arg2) const override; | ||
|
|
||
| private: | ||
| std::function<void(uint64_t, uint64_t)> function_; ///< Stored function. | ||
| }; |
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
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
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.