-
Notifications
You must be signed in to change notification settings - Fork 18
Integer offset-based pool allocator transformation (Rawstack) #201
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
Conversation
…wstack-transformation
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #201 +/- ##
==========================================
+ Coverage 92.33% 92.46% +0.12%
==========================================
Files 95 96 +1
Lines 17275 17616 +341
==========================================
+ Hits 15951 16288 +337
- Misses 1324 1328 +4
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
|
As I mentioned in the WP2 meeting, it can be limiting that all dimensions have to be known at the beginning of the the driver. In the acraneb2 dwarf, some of the arrays have dimension |
|
It looks like this thing has some pretty serious conflicts now. Are they worth the effort to try to resolve? |
|
Hi @rolfhm, thanks and apologies for taking so long with this. We are firmly committed to merging this development but are considering to integrate this with the existing pool allocator transformation. Therefore, we are possibly going to cherry-pick the code into a separate PR, I hope that's fine. So, I don't think there's a need to spend time on resolving conflicts for now. |
|
OK, no problem. I'll leave it be until I hear something from you. |
|
This has been merged with #314. |
Introduce the rawstack transformation
The transformation inserts a stack variable of size
(klon, stack_size[dtype][kind], kgpblock)into the driver for each of the types of temporary arrays with lead dimensionklonencountered in the kernels. The stacks are then passed to the kernels along with their size where all the temporary arrays are allocated as calculated offsets stored in integers. Access to the temporary arrays are then calculated by offsets from the offset integers.Assumes that all variables used for dimensions are available when entering the driver and that they are kept constant.