Replies: 10 comments 14 replies
-
On the Calyx end (at a lower priority) we can think of ways of improving QoR as well. |
Beta Was this translation helpful? Give feedback.
-
Since we're going to talk about virtual operators today, I decided to put down some of my thoughts/questions on the it. I imagine the syntax would be something like: Questions
|
Beta Was this translation helpful? Give feedback.
-
I was thinking about our discussion about getting default settings for inlining yesterday. More specifically, I was thinking about the So it seems like it may not even be worth it to implement Either way, I'll try to get resource numbers on the benchmarks in calyx-resource-eval when we fully inline and compare it. |
Beta Was this translation helpful? Give feedback.
-
I've begun trying to generate (inefficient) Calyx Polybench designs by going from: MLIR Affine -> MLIR SCF -> CIRCT Calyx -> Native Calyx (e.g., here). However, before I generate more designs, there are a few questions that I'd like feedback on (perhaps we can discuss this more in depth during out Thursday meeting):
|
Beta Was this translation helpful? Give feedback.
-
Another thing that might be worth thinking about: The Hector paper directly compares against Calyx's systolic array generator. I'll add this as a possible frontend on the project board |
Beta Was this translation helpful? Give feedback.
-
One small thing that I'm running into when going from C->SCF->Calyx. We're currently doing the benchmarks using Is there an operator in MLIR to get the square root for integers? (something equivalent to the Calyx primitive that does integer square root, which basically takes the floor of the square root of any integer). In c, you can do this by doing a cast
I'm wondering if there is a single operation in MLIR to define this. |
Beta Was this translation helpful? Give feedback.
-
I'm trying to lower
PlanMy plan is just to create a
I was wondering if this sounds fine. It's been a bit difficult for me to figure out how to make a |
Beta Was this translation helpful? Give feedback.
-
For the SCF->Calyx stuff, I just realized that for about 1/2 of the benchmarks, we can't compile
the nested for loop obviously can't be a I still think there are benefits to be gained from the 1/2 of the benchmarks for which we have to compile |
Beta Was this translation helpful? Give feedback.
-
(I know it's not summer anymore, but I want a place to write this down): I was thinking about getting a hypothetical (but concrete) example, where the Suppose we have the following groups: Also suppose the following requirements: We can schedule this using
This takes 1 + 10 = 11 cycles. The best possible (dynamic) schedule, unless I'm missing something, is this:
which takes at best 1 + 10 + 1 = 12 cycles (in reality it would take longer bc it would waste cycles in between groups). However, this is the best possible schedule. In the context of auto-parallelization, it is probably not realistic for a compiler to find the best schedule in general.
which takes at best 10 + 10 = 20 cycles (even worse). |
Beta Was this translation helpful? Give feedback.
-
Note about the generated Post-Op componentJust to give background on the systolic array: 1) The systolic array component 2) The post op component and 3) the main/controller component that connects (1) and (2), meaning (3) ends up being very RTL-like, since it's just a bunch of assignments that wire together ports. |
Beta Was this translation helpful? Give feedback.
-
Starting a lab notebook for updates on Calyx Static.
Beta Was this translation helpful? Give feedback.
All reactions