AthExHIP, master branch (2020.08.19.)
This MR goes hand-in hand with atlasexternals!718 (merged). Which was collected into atlasexternals-2.0.74 (as the only update over atlasexternals-2.0.73), and which this MR updates all projects to.
The MR introduces a trivial HIP example package. One that I'm (at least...) able to build both using the "AMD" and "NVidia" backends of HIP, using the Docker image gitlab-registry.cern.ch/akraszna/atlas-gpu-devel-env:centos7
, built by: https://gitlab.cern.ch/akraszna/atlas-gpu-devel-env (See https://groups.cern.ch/group/atlas-sw-accelerators/Lists/Archive/Flat.aspx?RootFolder=%2Fgroup%2Fatlas%2Dsw%2Daccelerators%2FLists%2FArchive%2FDocker%20images%20for%20GPU%20code%20development&FolderCTID=0x012002006AEEE26D0BA94347B599D9F35439A6D0 for some details about that Docker image.)
To build the package for an AMD backend, I do the following:
cmake -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DATLAS_PACKAGE_FILTER_FILE=../package_filters.txt -DAtlasCMake_DIR=/data/projects/hip/atlasexternals/Build/AtlasCMake -DLCG_DIR=/data/projects/hip/atlasexternals/Build/AtlasLCG -DAtlasHIP_DIR=/data/projects/hip/atlasexternals/Build/AtlasHIP -DCMAKE_HIP_PLATFORM=hcc ../athena/Projects/WorkDir/
While for an NVidia backend I can build with:
cmake -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DATLAS_PACKAGE_FILTER_FILE=../package_filters.txt -DAtlasCMake_DIR=/data/projects/hip/atlasexternals/Build/AtlasCMake -DLCG_DIR=/data/projects/hip/atlasexternals/Build/AtlasLCG -DAtlasHIP_DIR=/data/projects/hip/atlasexternals/Build/AtlasHIP -DCMAKE_HIP_PLATFORM=nvcc ../athena/Projects/WorkDir/
And they even work.
[bash][atlas]:build > ./CMakeFiles/atlas_build_run.sh athena.py AthExHIP/LinearTransformExample_jobOptions.py
Wed Aug 19 13:06:27 UTC 2020
Preloading tcmalloc_minimal.so
Py:Athena INFO including file "AthenaCommon/Preparation.py"
Py:Athena INFO using release [WorkDir-22.0.18] [x86_64-centos7-clang12-opt] [AthExHIP-master-20200818/16e2566] -- built on [2020-08-19T1305]
Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
Py:Athena INFO executing ROOT6Setup
Py:Athena INFO including file "AthenaCommon/Execution.py"
Py:Athena INFO including file "AthExHIP/LinearTransformExample_jobOptions.py"
Py:Athena INFO including file "AthenaCommon/runbatch.py"
Py:ConfigurableDb INFO Read module info for 5541 configurables from 5 genConfDb files
Py:ConfigurableDb INFO No duplicates have been found: that's good !
ApplicationMgr SUCCESS
====================================================================================================================================
Welcome to ApplicationMgr (GaudiCoreSvc v34r0)
running on d75198a7103b on Wed Aug 19 13:06:31 2020
====================================================================================================================================
ApplicationMgr INFO Application Manager Configured successfully
AthDictLoaderSvc INFO in initialize...
AthDictLoaderSvc INFO acquired Dso-registry
ClassIDSvc INFO getRegistryEntries: read 3316 CLIDRegistry entries for module ALL
CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception)
AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
AthHIPExamples:... INFO Will be using device:
- name = Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
- totalGlobalMem = 8589934592
- maxThreadsPerBlock = 1024
- multiProcessorCount = 36
ApplicationMgr INFO Application Manager Initialized successfully
ApplicationMgr INFO Application Manager Started successfully
AthenaEventLoopMgr INFO ===>>> start of run 1 <<<===
AthenaEventLoopMgr INFO ===>>> start processing event #1, run #1 0 events processed so far <<<===
AthenaEventLoopMgr INFO ===>>> done processing event #1, run #1 1 events processed so far <<<===
...
vs.
[bash][atlas]:build > ./CMakeFiles/atlas_build_run.sh athena.py AthExHIP/LinearTransformExample_jobOptions.py
Wed Aug 19 13:07:46 UTC 2020
Preloading tcmalloc_minimal.so
Py:Athena INFO including file "AthenaCommon/Preparation.py"
Py:Athena INFO using release [WorkDir-22.0.18] [x86_64-centos7-clang12-opt] [AthExHIP-master-20200818/16e2566] -- built on [2020-08-19T1306]
Py:Athena INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
Py:Athena INFO executing ROOT6Setup
Py:Athena INFO including file "AthenaCommon/Execution.py"
Py:Athena INFO including file "AthExHIP/LinearTransformExample_jobOptions.py"
Py:Athena INFO including file "AthenaCommon/runbatch.py"
Py:ConfigurableDb INFO Read module info for 5541 configurables from 4 genConfDb files
Py:ConfigurableDb INFO No duplicates have been found: that's good !
ApplicationMgr SUCCESS
====================================================================================================================================
Welcome to ApplicationMgr (GaudiCoreSvc v34r0)
running on 370ae6565447 on Wed Aug 19 13:07:50 2020
====================================================================================================================================
ApplicationMgr INFO Application Manager Configured successfully
AthDictLoaderSvc INFO in initialize...
AthDictLoaderSvc INFO acquired Dso-registry
ClassIDSvc INFO getRegistryEntries: read 3316 CLIDRegistry entries for module ALL
CoreDumpSvc INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception)
AthenaEventLoopMgr INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
AthHIPExamples:... INFO Will be using device:
- name = GeForce GTX 960
- totalGlobalMem = 2099445760
- maxThreadsPerBlock = 1024
- multiProcessorCount = 8
ApplicationMgr INFO Application Manager Initialized successfully
ApplicationMgr INFO Application Manager Started successfully
AthenaEventLoopMgr INFO ===>>> start of run 1 <<<===
AthenaEventLoopMgr INFO ===>>> start processing event #1, run #1 0 events processed so far <<<===
AthenaEventLoopMgr INFO ===>>> done processing event #1, run #1 1 events processed so far <<<===
...
@ssnyder, I hope this will be the end of adding exceptions for function multi-versioning.
Unfortunately the CI or the nightly will not be able to build the package.