8000 Fix compilation with `EXT_DEP=OFF` and test it on Github actions by FreyJo · Pull Request #1235 · acados/acados · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Fix compilation with EXT_DEP=OFF and test it on Github actions #1235

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

Merged
merged 15 commits into from
Sep 13, 2024

Conversation

FreyJo
Copy link
Member
@FreyJo FreyJo commented Sep 2, 2024

@FreyJo FreyJo marked this pull request as draft September 2, 2024 12:55
@giaf
Copy link
Collaborator
giaf commented Sep 12, 2024

Both BLASFEO and HPIPM now have an EXT_DEP compilation option, that can be used to remove all dependencies on malloc, free and printf. There remain dependencies on sqrt and compiler-added routines like e.g. to check stack size.

In BLASFEO, removing the possibility to perform dynamic memory allocation comes with some consequences for some routines and matrix size combinations: possibly the routine would exit for too large matrix sizes.
However, for the panel-major matrix format that we generally use, drawbacks are rather limited.
As far as I can tell, the only one with consequences in the current acados implementation is the use of dgemm_tn in here https://github.com/acados/acados/blob/master/acados/sim/sim_irk_integrator.c#L1370 and other occurrences in the same file.
For large matrices, it could call the slow reference routines or exit, depending on the exact compilation flags.
I would suggest to avoid the use of dgemm_tn whenever possible (also because it has slower performance in any case compared to the other dgemm variants), and in this specific case it can be easily achieved by saving the transposed of tmp_nux_ny (that is computed anyway) in a new matrix other than J_y_tilde like e.g. tmp_ny_nux, that is passed to dgemm_nn instead of dgemm_tn.
This would both improve performance in general and avoid the possible issues described above.

@FreyJo FreyJo marked this pull request as ready for review September 13, 2024 07:06
@FreyJo FreyJo marked this pull request as draft September 13, 2024 07:18
@FreyJo FreyJo marked this pull request as draft September 13, 2024 07:18
@FreyJo FreyJo marked this pull request as ready for review September 13, 2024 08:10
@sandmaennchen sandmaennchen merged commit 56ecee9 into acados:master Sep 13, 2024
13 checks passed
@sandmaennchen sandmaennchen deleted the ext_dep_off branch September 13, 2024 08:55
FreyJo added a commit that referenced this pull request Oct 7, 2024
- update BLASFEO and HPIPM
- create C example that does not use the BLASFEO print routines
- create a Github actions workflow that tests compilation with
`EXT_DEP=OFF`.
- addresses the issue reported in
https://discourse.acados.org/t/compiling-error-for-microautobox-iii/1757
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
0