ATLAS Offline Software
Loading...
Searching...
No Matches
GnnConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2
3if __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
72 acc.merge(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
110 acc.merge(EFTrackingDataStreamLoaderAlgorithmCfg(
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