<@U016EM8L91B> Is there any parallelism that is/ca...
# magic
m
@User Is there any parallelism that is/can be exploited in magic extraction? Right now, this is the slowest part of the OpenRAM flow (well, besides characterization).
t
Not without rewriting parts of magic. It does cut the layout up into an M x N array of squares and extracts each one independently, so the potential for parallelization is there. . .
m
Poking into that now...
How does the extract "stack" work? That does local extraction then up the hierarchy?
t
Yes. But I don't think you'll gain anything by parallelizing the hierarchy. The long run-times are for single large cells. the SRAM core array is a worst-case scenario for the extraction because the cells are very small and so every cell interacts with every cell around it. Multiplied many times.
m
Makes sense.
So this is the extSubTree and extArray?
(just getting the lay of the land)
t
Yes. I am not as familiar with the extArray code, which is supposed to be efficient for arrays; but if there is stuff (like route lines) in the parent cell over the array, then the whole array eventually gets flattened to check interactions with the parent. It suggests that you might get a huge speedup by making a cell containing all the routes clipped to the area of the core cell, so that at the level above that, it's just an array of cells with nothing else except at the boundary.
Although be advised that whenever I believe I really understand magic's extraction code, I'm usually proven completely wrong.