-
Notifications
You must be signed in to change notification settings - Fork 21
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
Remove padding agents using interface entities #103
Conversation
I am getting incorrect values in this branch while executing on CUDA. The values are exactly correct in every index for CPU exec mode. I am unsure of how to debug this. What this PR tries to do - Before this change, we simply had How to reproduce the error - Simply run Also, I am not sure how to debug this or where the error could even reside. |
@shacklettbp Hi Brennan, would you mind taking a look ? I am not sure how to proceed with this issue. For reference, this is how the output looks like and I think the main issue is that CUDA exec mode is returning different values than CPU. The CPU values are correct.
|
You need to sort the new interface entities when using the GPU backend. It doesn't look like you're doing that currently. I assume this could be done once during the initialization task graph. |
Well that was quick, thanks! |
* Init remove padding agents * Testing * Refactor out the controlled state * Fix the tests * Use by reference * Temp fix for map export * cleanup * Fix merge issues * Fix merge issues * make consts 6000 to pass tests * Use init counts for BVH * Remove unused function * Pass all tests * Set controlledstate * Zero out things * Zero padded agents out * Add a test.py for easy debugging * Better check for map drawing. * Set agents to 128 * Cycle through files in test.py * Rename InterfaceEntity to AgentInterfaceEntity * Only print dones * Remove debug checks * Separete out the observation systems * Sort interfaces * remove debug script * Remove debug statements * Minor improvements * Info tensor interface matches main * Correctly export response type and trajectory
This is a big PR since remove the padding agents impacts almost everything.
We introduce new archetypes
AgentInterface
andRoadInterface
with the components that we want to export. To fill in the observation, we simply use new structsAgentInterfaceEntity
andRoadInterfaceEntity
that store a a reference to these interface entities. While collecting observations, we can simply get the corresponding arrays and fill the values while ignoring the padded values.While we make as many entities from these new archetypes as specified by consts, they do not have physics components and are not registered with the BVH. Also, these entities are not iterated through in the task graph. The effect is that the taskgraph is only run for the actual number of agents in the Sim and we simply reference the "export components" by id and fill in the observations.