ATLAS Offline Software
GnnConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 
3 if __name__ == "__main__":
4  from argparse import ArgumentParser
5  argumentParser = ArgumentParser()
6  argumentParser.add_argument(
7  "--xclbinPath",
8  required = True,
9  )
10 
11  argumentParser.add_argument(
12  "--inputTestVectorPath",
13  default = "/eos/project-a/atlas-eftracking/TestVectors/FPGATrackSim_TVs/Test_Vectors_v0-6-3d/F150_Region34_SingleMuon/slicing_PixelFirst_output.txt",
14  )
15 
16  argumentParser.add_argument(
17  "--graphOutputPath",
18  default = "graph_output.txt",
19  )
20 
21  argumentParser.add_argument(
22  "--eventOutputPath",
23  default = "event_output.txt",
24  )
25 
26  argumentParser.add_argument(
27  "--inferenceOutputPath",
28  default = "inference_output.txt",
29  )
30 
31  argumentParser.add_argument(
32  "--bufferSize",
33  type = int,
34  default = 8192,
35  )
36 
37  argumentParser.add_argument(
38  "--events",
39  type = int,
40  default = 2,
41  )
42 
43  argumentParser.add_argument(
44  "--verbose",
45  action = "store_true",
46  )
47 
48  arguments = argumentParser.parse_args()
49 
50  from AthenaConfiguration.AllConfigFlags import initConfigFlags
51  flags = initConfigFlags()
52 
53  if arguments.verbose:
54  from AthenaCommon.Constants import DEBUG
55  flags.Exec.OutputLevel = DEBUG
56 
57  flags.lock()
58 
59  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
60  acc = MainServicesCfg(flags)
61 
62  from AthenaConfiguration.ComponentFactory import CompFactory
63  acc.addService(CompFactory.ChronoStatSvc(
64  PrintUserTime = True,
65  PrintSystemTime = True,
66  PrintEllapsedTime = True,
67  ))
68 
69  acc.addService(CompFactory.AthXRT.DeviceMgmtSvc(XclbinPathsList = [arguments.xclbinPath]))
70 
71  from EFTrackingFPGAUtility.EFTrackingDataStreamLoaderAlgorithmConfig import EFTrackingDataStreamLoaderAlgorithmCfg
73  flags,
74  name = "inputDataStreamLoader",
75  bufferSize = arguments.bufferSize,
76  GHITZTxtInputPaths = [
77  arguments.inputTestVectorPath,
78  ],
79  GHITZTxtInputKeys = [
80  "inputDataStream",
81  ],
82  ))
83 
84  from EFTrackingFPGAPipeline.EFTrackingXrtAlgorithmConfig import EFTrackingXrtAlgorithmCfg
85  acc.merge(EFTrackingXrtAlgorithmCfg(
86  flags,
87  bufferSize = arguments.bufferSize,
88  inputInterfaces = [
89  ["configurableLengthWideLoader:{configurableLengthWideLoader_1}", "inputDataStream", 0],
90  ],
91  outputInterfaces = [
92  ["dynamicLengthWideUnloader:{dynamicLengthWideUnloader_1}", "graphOutputDataStream", 1],
93  ["dynamicLengthWideUnloader:{dynamicLengthWideUnloader_2}", "eventOutputDataStream", 1],
94  ["dynamicLengthWideUnloader:{dynamicLengthWideUnloader_3}", "inferenceOutputDataStream", 1],
95  ],
96  vSizeInterfaces = [
97  ["configurableLengthWideLoader:{configurableLengthWideLoader_1}", "inputDataStream", 2],
98  ],
99  kernelOrder = [
100  [
101  "configurableLengthWideLoader:{configurableLengthWideLoader_1}",
102  #"GNN_GC:{GNN_GC_1}",
103  "dynamicLengthWideUnloader:{dynamicLengthWideUnloader_1}",
104  "dynamicLengthWideUnloader:{dynamicLengthWideUnloader_2}",
105  "dynamicLengthWideUnloader:{dynamicLengthWideUnloader_3}",
106  ],
107  ]
108  ))
109 
111  flags,
112  name = "outputDataStreamLoader",
113  bufferSize = arguments.bufferSize,
114  GHITZTxtOutputPaths = [
115  arguments.graphOutputPath,
116  arguments.eventOutputPath,
117  arguments.inferenceOutputPath,
118  ],
119  GHITZTxtOutputKeys = [
120  "graphDataStreamUnloader",
121  "eventDataStreamUnloader",
122  "inferenceDataStreamUnloader",
123  ],
124  ))
125 
126  acc.run(arguments.events)
127 
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:310
Constants
some useful constants -------------------------------------------------—
EFTrackingXrtAlgorithmConfig.EFTrackingXrtAlgorithmCfg
def EFTrackingXrtAlgorithmCfg(flags, **kwargs)
Definition: EFTrackingXrtAlgorithmConfig.py:3
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
EFTrackingDataStreamLoaderAlgorithmConfig.EFTrackingDataStreamLoaderAlgorithmCfg
def EFTrackingDataStreamLoaderAlgorithmCfg(flags, **kwargs)
Definition: EFTrackingDataStreamLoaderAlgorithmConfig.py:4