Support reporting kernel timings via profiling_summary()
#134
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.
I added a
network_get_profiling_info
function to theGeNNDevice
in order to get the recorded kernel timings for my benchmarks. Here is the function in case you want this in brian2GeNN.After a run with
prefs.devices.genn.kernel_timing = True
a call toprint(brian2.profiling_summary())
now returns something like this:Currently, calling
run
withprofile = True
raises anNotImplementedError
. Instead, one has to set thekernel_timing
option. But the way it is right now, runningprofiling_summary()
withoutkernel_timing = True
, will raise theCPPStandaloneDevice
error stating that one has to runprofile=True
.I don't know what way around you want this (if at all). Either letting this be recorded when
profile = True
or leave as is and raise another error whenkernel_timing = False
.I've allowed edits by maintainers, feel free to modify :)