6 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
9 kwargs.setdefault(
"bufferSize", 8192)
12 "/eos/project-a/atlas-eftracking/FPGA_compilation/FPGA_compilation_hw/12_road2track_HLS/Road2Track_hw.xclbin"
15 from json
import dumps
16 kwargs.setdefault(
"kernelDefinitionsJsonString", dumps({
17 "loader": [{
"storeGateKey":
"inputDataStream",
19 "interfaceMode": ROOT.EFTrackingXrtParameters.InterfaceMode.INPUT}],
20 "unloader": [{
"storeGateKey":
"outputDataStream",
22 "interfaceMode": ROOT.EFTrackingXrtParameters.InterfaceMode.OUTPUT}]}))
24 from AthenaConfiguration.ComponentFactory
import CompFactory
25 EFTrackingXrtAlgorithm = CompFactory.EFTrackingXrtAlgorithm(
"EFTrackingXrtAlgorithm", **kwargs)
27 acc.addEventAlgo(EFTrackingXrtAlgorithm)
31 if __name__ ==
"__main__":
32 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
36 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
39 from argparse
import ArgumentParser
40 argumentParser = ArgumentParser()
41 argumentParser.add_argument(
"--xclbinPath")
42 argumentParser.add_argument(
"--bufferSize", type = int, default = 8192)
44 from argparse
import Action
46 def __call__(self, parser, namespace, values, option_string=None):
55 interfaceModes = [(member,
int(getattr(ROOT.EFTrackingXrtParameters.InterfaceMode, member)))
56 for member
in dir(ROOT.EFTrackingXrtParameters.InterfaceMode)
57 if member
not in dir(ROOT.EFTrackingXrtParameters.EmptyEnum)]
59 for interfaceModeString, interfaceModeValue
in interfaceModes:
60 values = values.replace(interfaceModeString,
str(interfaceModeValue))
62 from json
import loads
63 setattr(namespace, self.dest, loads(values))
65 argumentParser.add_argument(
"--kernelDefinitions", action=JsonToDictAction)
66 argumentParser.add_argument(
"--inputCsvPathToSgKeyMap", action=JsonToDictAction)
67 argumentParser.add_argument(
"--outputCsvPathToSgKeyMap", action=JsonToDictAction)
69 arguments = argumentParser.parse_args()
71 from AthenaConfiguration.ComponentFactory
import CompFactory
72 acc.addService(CompFactory.AthXRT.DeviceMgmtSvc(XclbinPathsList = [arguments.xclbinPath]))
74 for inputCsvPath, sgKey
in arguments.inputCsvPathToSgKeyMap.items():
75 from EFTrackingFPGAIntegration.EFTrackingDataStreamLoaderAlgorithmConfig
import EFTrackingDataStreamLoaderAlgorithmCfg
77 bufferSize = arguments.bufferSize,
78 inputCsvPath = inputCsvPath,
79 inputDataStream = sgKey))
81 from json
import dumps
83 bufferSize = arguments.bufferSize,
84 xclbinPath = arguments.xclbinPath,
85 kernelDefinitionsJsonString = dumps(arguments.kernelDefinitions)))
87 for outputCsvPath, sgKey
in arguments.outputCsvPathToSgKeyMap.items():
88 from EFTrackingFPGAIntegration.EFTrackingDataStreamUnloaderAlgorithmConfig
import EFTrackingDataStreamUnloaderAlgorithmCfg
90 outputCsvPath = outputCsvPath,
91 outputDataStream = sgKey))