Flow control - #23
Merged
Merged
Flow control#23
Conversation
…n. First is add a modulo operation. This requires disabling derivatives. The second enhancement is to add logic and conditional nodes. These have not been added to the c or fortran bindings yet.
1. Add an index node constant. This node allows access to the current kernel index. 2. Correct if node code generation and use ? : to allow the register to be const. 3. Refactor workflows and gpu contexts to add a memzero work item and fold the loop interation into the kernel itself. 4. Refactor backend buffers to inherit from std::vector directly. This eliminates a low of code. 5. Refactor copy and passed backend buffer code to use macro functions. 6. Add function to generate and organize graphs for PIC codes. 7. Add unit test for PIC field solver. This checkes the particle counts aganist a standard historgram. 8. Disable PIC driver to avoid compilation error since the API is in flux.
…lding main PIC code.
…he steps for initalization, particle push, field solve, and particle reinjection (uniform x dist only).
…ility to define allback functions in the workflows. Add fileio functions for the pic code.
… correct number of iterations. Remove unneeded character from index string reps. Add kernel profiling capability.
…tly. Avoid underlow by keeping max_base teh same floating type as the template T
… up show useage count to endline methods.
…rticle_push kernel from 0.25s to 0.03s.
… the number of threads used for cuda kernels. Long term we should use something more robust.
…faster than the previous kernel however it is 100x slower when run with orther kernels. So far this only affects the metal kernel. A standalone test case doesn't show this problem so It's not clear where it's comming from. Commit this work in progress to see of the Cuda kernel has the same problem.
… reading from constant memory.
… total problem size.
…ed wrong. This fixes the performance regression experianced when using atomic types since there was a 1024000 population all getting assigned to the same bin. Fix issues with NaNs and Infs by checking for them in the particle reinjection kernel.
…cannot update it by reference. Instead make the function apply_u return an updated value.
…ons for coordinate conversion creates an exact graph.
…d min and erf nodes. Refactor precompile methods to allow a unquie function to bedefined before the kernels. Add debug checks for duplicate nodes in kernel arguments.
…st. This should keep the bits intack and avoid type conversions in the collision operator. Update unit tests as a result.
… and currently used memory.
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
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.
Complete Particle in Cell code with collision operator.