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
to4.0.0
. But only in LCG_104d_ATLAS_9. LCG_104d_ATLAS_10 remained on version3.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.
🤔
- 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...
- 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.
- 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.
- Updated
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.