<@U0172QZ342D> I am not able to give you a concret...
# caravel
o
@User I am not able to give you a concrete answer regarding the possibility of the
lite
version. We are aware of the size increase and it is affecting us too. Once we have a path forward we'll make sure to get back to you. Regarding the PDK build failing, I am not sure what build process you are using; however, I have tested the following and it worked
Copy code
export INSTALL_SRAM=yes
export PDK_ROOT=<pdk_root>
git clone --depth=1 --branch mpw-5a <https://github.com/efabless/caravel.git> <caravel_root>
cd <caravel_root>
make install_mcw
make uncompress (optional)
make pdk
the values for
pdk_root
and
caravel_root
are yours to decide on cc: @User @User @User @User @User
@User Moreover, the latest Caravel User Project CI run involved the building the
pdk
in a similar manner to the one mentioned in the prior message, without SRAM, and it also succeeded. The PDK builds took around:
50 mins
with SRAM
20 mins
without SRAM
m
I can make the PDK, I can't run the tests
o
ok, I might have misunderstood you earlier messages. Regarding that, we are aware and as @Marwan Abbas mentioned we are working on a fix
m
github action can't seem to install the pdk with sram though
o
hopefully we will be able to provide a resolution soon
m
but I confirm the instructions above work for me in 15 mins
(just make pdk-with-sram step)
o
the Github Action might be working with limited compute making it timeout or fail.
t
@omla : I would like to know what part of the process takes so long when building the SRAM. I ran
make sram-A
in open_pdks on my laptop and it took exactly six minutes.
o
@Tim Edwards I would assume it's not just the SRAM as there is also timing generation when building with SRAM
t
@omla : What timing? There are already .lib files included with the SRAM macro library. It doesn't require a "make timing" like skywater-pdk.
o
@Tim Edwards was not aware it already had them. I can't tell you exactly what is adding such a big overhead but the change to enable SRAM only affects this command
Copy code
./configure --enable-sky130-pdk=$(PDK_ROOT)/skywater-pdk/libraries --with-sky130-local-path=$(PDK_ROOT) --enable-sram-sky130=$(INSTALL_SRAM)
and that usually adds 15-20 mins to the PDK build process sometimes up to 30 mins. Keep in mind we use relatively small build machines.
k
Not sure if it this is relevant but github action runners aren't that powerful.
Copy code
Hardware specification for Windows and Linux virtual machines:

2-core CPU
7 GB of RAM memory
14 GB of SSD disk space
t
@omla : 7GB of RAM is way too small to be building the skywater-pdk. It needs to be about 16GB. Also, by the way, the option
--with-sky130-local-path=
has been deprecated since at least half a year ago. I think I can also make a change to get more parallelism out of the SRAM build, as all of the generation of .mag and .lef files is being done by one magic process, serially for all the different macros in the SRAM library.
Parallelizing the process might help, too, because magic is doing a GDS read of all the SRAM macros in the same process, which is a much larger memory overhead than reading in separate processes. If done separately, there would be only two read at a time on a 2-core machine, which would cut the memory use in half.
m
ah, that's why it fails on CI then. And I'd say it's fairly important this is fixed somehow because CI is so useful to verify the tooling works.
a
I have some local changes which can fix most of these issues by using docker in a different way, would love to push and start the discussion but I can't push to a branch on the
caravel_user_project
repo
o
@Tim Edwards what would be an acceptable amount of RAM for this build ? Moreover, I believe making using of that second (potentially third, fourth, etc. ) core will offer a noticeable improvement especially as SRAM is becoming somewhat essential at this point.
m
why do we have to build it? can't we have a way to build the pdk, and then do binary releases?
t
@omla : My system tends to hit about 15GB for these builds, but my memory is loaded up a lot by Firefox, so I think about 11-12GB, probably. I discovered something that I did in the open_pdks sky130 Makefile that is preventing the most obvious parallelization. I just fixed it and am testing it now. It should cut a huge amount of time off of the build.
@Matt Venn: Tim Ansell started an hourly build of open_pdks on a Google server. We have been working through various issues over the past couple of weeks. It has only been reliable in the past couple of days. So migration to a pre-built system is a good possibility, but only recently became possible.
🙌 1
o
@Tim Edwards 12GB is manageable thanks for pointing that. And please do let me know once you get the fix verified, thanks again 🙏
m
@Olof Kindgren