Skip to content

Draft: ADVAE2A Build Template, main branch (2025.02.11.)

This is the latest step in trying to figure out the build that we should use for the HLS4ML code in L1Topo, which first came on my radar with !73980 (closed).

We had a chat this morning with @sagara17, discussing how https://gitlab.cern.ch/atlas-l1calo/l1topo/specialAlgorithms/anomaly-detection-vae/advae2a-external (once it becomes a public project...) could be built as part of Athena.

As I learned in the 11th hour, we can't actually build that external in atlas/atlasexternals. 😱 Since the package in which I understand it needs to be used (L1TopoAlgorithms), is built as part of DetCommon as well.

So... as long as that external library only needs to be used privately by L1TopoAlgorithms, this example could be a good template for how we could set up the build. 🤔 As long as we build the external library into a static library, we don't need to worry about its installation. Or the propagation of its build settings to people building code against a nightly installation. We can just build the external as part of this package using ExternalProject_Add, and that should be the end of it. 🤔

Instead of just pointing the L1Topo developers to my athena fork, I thought that setting up an MR like this would make things a lot more readable. But of course this MR should never be merged!

Pinging @fwinkl as well, so he wouldn't be left out of this fun... 😛

P.S. @sagara17, there may be some issue in the code of the repository as well. When I tried to build it with the linking flags that we use in Athena, linking the shared library failed because of missing symbols. 🤔 (Building with default GCC settings, like it's done in this MR, succeeds.) But we can follow up on that in an issue / MR in that repository...

Merge request reports

Loading