-
-
Notifications
You must be signed in to change notification settings - Fork 80
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
warning: global JIT code buffer exhausted #672
Comments
The -9 thing is probably those processes being killed due to out-of-memory. I think we need to scale the number of background compile threads based on the load average of the machine, not just the number of CPUs. Is that model publicly available? I haven't done much testing with VITAL before. |
The machine has like 20Gb left of memory, but it might be that the memory per docker container is restricted and that's where it runs out, I'll see if I can increase that limit. The memory model is in the device library file (unencrypted) which comes with Libero. You can download Libero without a license. For the latest Libero you also get a free 1Y license that can be renewed perpetually. |
I tried the same test on native Windows in single thread and it takes a long time to run, I killed it after 2h.
If I run without the |
I managed to install it and used the SmartGen tool to generate an EDAC core, but not sure what options I should choose. Can you have a look at this to see if it's similar to your case? nickg/vhdl-projects@15a7bda |
So is this the same test where GHDL finishes in 20 minutes but NVC takes 50+? I tried a simple testbench for the RAM based on the settings above and it didn't seem particularly slow: 6 seconds vs 8 seconds for GHDL, although NVC is usually a lot faster so there's probably something to optimise there. Can you see if it's actually the elaboration stage that takes most of the time without At the moment there is an arbitrary limit on the size of code that can be JIT-compiled, that's what causes the "code buffer exhausted" message. I'll try to fix that at the weekend. |
The tests are top-level FPGA tests, so it's a bit more than just the memory. I can check for the elaboration, but I don't think it is the case as I have shorter tests that only lasts for a few minutes. The tests primarily differ in the test sequence, so they should be equally affected if it was the case. |
It's quite possible a performance regression slipped through as I did rewrite a lot of the back-end last year. It would be really helpful if you could narrow down approximately when that happened. |
The "code buffer exhausted" warning should be gone now but I'd still like to get to the bottom of what caused the performance regression. |
"code buffer exhausted" seems to be gone, but the "JIT code buffer for ... too small" and exit with -9 is still present on "nvc 1.10-devel (1.9.0.r76.g66dc008d) (Using LLVM 12.0.0)" |
When running several simulations in parallel I get this message on some of them with an exit code of -9 just after.
It is a bit random on which tests, but it seems to always be the same message. It is in the VITAL handling of a Microchip memory IP.
The text was updated successfully, but these errors were encountered: