Skip to content

Update to LCG_104d_ATLAS_9, main branch (2024.03.11.)

This is a slightly bigger update, switching the main branch to using LCG_104d_ATLAS_9, as discussed in ATLINFR-5281.

The new LCG layer comes with the following updates: https://lcginfo.cern.ch/compare_releases/None/104d_ATLAS_9/104d_ATLAS_7, as discussed in SPI-2517. The (from a technical perspective) important updates being:

  • Rivet was updated from version 3.1.10 to 4.0.0. But only in LCG_104d_ATLAS_9. LCG_104d_ATLAS_10 remained on version 3.1.10, as the new version is not compatible with HepMC2 anymore.
    • This required adding some pre-processor choices in Rivet_i and TruthRivetTools to allow both the HepMC3 and HepMC2 based nightlies to continue functioning. 🤔
  • Re-introduced CUDA into the ATLAS layer with CUDA 12.4, which finally supports GCC 13.
  • Also re-introduced cuDNN, with version 8.9.7.

To account for the Rivet and CUDA changes, had to update the externals to atlasexternals-2.1.12. Which comes with the following updates (atlasexternals@2.1.10...2.1.12):

  • Introduced FindHighFive.cmake for the correspondingly named external;
    • This is a header-only package that Rivet 4.0.0 depends on. And I see just now that LCG_104d_ATLAS_10 misses HighFive as well. 🤔 So I may need to tweak the CMake configuration of the two affected packages a bit more, to not break the HepMC2 nightlies right away...
  • Changed External/onnxruntime to download a pre-built binary of ONNXRuntime instead of building it itself;
    • Updated Findonnxruntime.cmake to handle the different header layout coming with the pre-built binaries.

The ONNXRuntime change was made to avoid spending a loooong time with figuring out how to make ONNXRuntime build successfully with CUDA 12.4, cuDNN 8 and GCC 13. (It didn't do so out of the box. 😦) But this required the include statements for all ONNXRuntime headers to be updated. Since as it turns out, our custom build was not installing the ONNX headers quite correctly so far. 🤔

Edited by Attila Krasznahorkay

Merge request reports