-
Notifications
You must be signed in to change notification settings - Fork 22
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
DAG Control flow errors when abstracting function definitions to separate compilation units / methods #1210
Comments
Default implicit constructor, which is implicitly called by subclass's constructor. I don't think that is the problem. |
I'm getting a similar issue. The problem is that the The layer API does not have this issue because it stores I think this is a pretty big foot gun, since any non-trivial model is likely going to be split into a function to define it and a function to run it. I'm not sure I understand the nuance between |
I wrote the original At a quick glance, I agree with you the problem appears to be because the
A little harder to resolve, given that Sadly, a bit too much work required given how busy I am at current. |
Possibly of interest @plietar, I think this is the only open-source model we have that's split across multiple files. It pre-dates the DAG functionality. |
Encountered a bug when working on a non-trivial model, where when using the DAG api (
dependsOn
etc) errors would occur when abstracting the definition of agent function behaviours and inclusion in the control flow DAG to mehtods in a separate file which take a reference of theModelDescription
object. The same abstraciton but using layers behaves fine.E.g. something along the lines of (untested)
main.cu
Splitting out the agent funciton(s) into methods in a .cu file, with an associated header
other.cuh
other.cu
main.cu
In the separate larger model where this occurred, this resulted in runtime errors under linux (CUDA 12.5, GCC 11) resulted in runtime errors for the split case, while the first case was fine.
The runtime error was:
Which via gdb had a backtrace pointing at
DependencyNode::getDependents
called byDependencyGraph::validateSubTree(DependencyNode* node, std::vector<DependencyNode*>& functionStack)
DependencyNode::dependents
is astd::vector<DependencyNode*> dependents;
but it does not appear to get explicitly initialised anywhere, which may be the problem (or it might not, as a debug build reproduced the error).The text was updated successfully, but these errors were encountered: