Skip to content
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

Add GroupBinding synthesis process decision #97

Closed
2 tasks
ryukzak opened this issue Mar 17, 2021 · 1 comment · Fixed by #253
Closed
2 tasks

Add GroupBinding synthesis process decision #97

ryukzak opened this issue Mar 17, 2021 · 1 comment · Fixed by #253
Assignees
Labels
enhancement New feature or request hs Haskell

Comments

@ryukzak
Copy link
Owner

ryukzak commented Mar 17, 2021

Add a new type of synthesis process decision: GroupBinding.

Currently, binding on the Network level can be implemented only one by one, which is inefficient and creates many duplicated synthesis nodes. E.g.: Bind "mul" "a*b=c"; Bind "accum" "d + e = f" is equal to Bind "accum" "d + e = f"; Bind "mul" "a*b=c".

Or more complicated example (rows - bind options, columns - function, cells - bind to PUs):

|   | buf1         | buf2        |
|---+--------------+-------------|
| 1 | fram1 fram2  |             |
| 2 | fram1        | fram2       |
| 3 | fram2        | fram1       |
| 4 |              | fram1 fram2 |

You can see four variants, but really we have only two. 1 is equal to 4, 2 to 3.

We can resolve this problem by introducing GroupBinding, which allows making several binding at once. Possible subtypes:

  • NonAlternativeBinds - all bind without alternative (if we have only one multiplier PU, we know who will do all multiplications).
  • AllBinds - make all available binds at once. For example, from the table, we will have two options.
  • FirstWaveBinds - make all bindings for the first wave functions (first wave - functions which can be executed right now).

Additional, we need to design some metrics for comparing AllBinds and FirstWaveBinds options.

Metrics ideas:

  • standard deviation between similar PU loading in functions, in receiving variables, in sending variables; their average value for all PU.
  • number of self sending for each PU, and average value.
    • How to calculate it with optimization into account?
@ryukzak ryukzak added enhancement New feature or request hs Haskell labels Mar 17, 2021
@ryukzak ryukzak linked a pull request Mar 25, 2022 that will close this issue
@ryukzak ryukzak moved this to 🏗 In progress in NITTA Project Feb 6, 2023
@ryukzak ryukzak linked a pull request Jun 15, 2023 that will close this issue
@ryukzak
Copy link
Owner Author

ryukzak commented Jun 15, 2023

@ryukzak ryukzak closed this as completed Jun 15, 2023
@github-project-automation github-project-automation bot moved this from 🏗 In progress to ✅ Done in NITTA Project Jun 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request hs Haskell
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants