Time multiplexing multipliers and adders to reduce resource usage#18
Time multiplexing multipliers and adders to reduce resource usage#18gaborszita wants to merge 1 commit into
Conversation
|
Sorry for the slow reply! There's a lot to think about here. Some ideas:
I'm totally fine with (i) for the short-term, but (ii) does seem like the right long-term solution to me, especially if people want to run larger neural networks with pyrtlnet. Let me know if you see other options, and how you plan to proceed. Regardless of which approach we take, there are a couple details to keep in mind:
|
@fdxmw As I said back in December, floating point multipliers and adders are so resource-heavy that when I attempt to simulate neural network training, it is extremely slow and consumes a massive amount of RAM. Hence, time-multiplexing multipliers and adders is necessary to lower resource usage.
I cooked up time-multiplexing multipliers with Claude, and overall the design seems good to me, so I was wondering if you could check if the general idea looks good. Of course, this is not final, and there are multiple changes I would like to add, like time-multiplexing adders too. I also don't like the way Claude handled the
MemBlockinputs, so just disregard the_make_systolic_array_memblock_inputsandnum_systolic_array_cyclesfunctions for now, I'll come up with a solution for theMemBlockasync problem later. I was just wondering if you could skim it and let me know whether you think the general idea is good.