ATLAS Offline Software
Loading...
Searching...
No Matches
ActsGPUDataPreparationConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5
6from AthDeviceComps.AthDeviceCompsConfig import MemoryResourcesToolCfg, CopyToolCfg, DeviceMemoryResourceToolCfg
7from AthDeviceComps.DeviceConfigFlags import DeviceBackend
8
9# ============================================================
10# Tool configurations
11# ============================================================
12
14 name="CUDAClusterizerTool",
15 **kwargs) -> ComponentAccumulator:
16 acc = ComponentAccumulator()
17
18 from AthCUDAServices.AthCUDAServicesConfig import StreamToolCfg
19
20 kwargs.setdefault("MemoryResourcesTool", acc.popToolsAndMerge(MemoryResourcesToolCfg(flags)))
21 kwargs.setdefault("CopyProviderTool", acc.popToolsAndMerge(CopyToolCfg(flags)))
22 kwargs.setdefault("StreamTool", acc.popToolsAndMerge(StreamToolCfg(flags)))
23 kwargs.setdefault("CellSorting", flags.Acts.Device.doCellSorting)
24
25 acc.setPrivateTools(
26 CompFactory.ActsTrk.CUDAClusterizationAlgProviderTool(name, **kwargs))
27 return acc
28
30 name="CUDASPFormationTool",
31 **kwargs) -> ComponentAccumulator:
32 acc = ComponentAccumulator()
33
34 from AthCUDAServices.AthCUDAServicesConfig import StreamToolCfg
35
36 kwargs.setdefault("MemoryResourcesTool", acc.popToolsAndMerge(MemoryResourcesToolCfg(flags)))
37 kwargs.setdefault("CopyProviderTool", acc.popToolsAndMerge(CopyToolCfg(flags)))
38 kwargs.setdefault("StreamTool", acc.popToolsAndMerge(StreamToolCfg(flags)))
39
40 acc.setPrivateTools(
41 CompFactory.ActsTrk.CUDASPFormationAlgProviderTool(name, **kwargs))
42 return acc
43
44
46 name="HIPClusterizerTool",
47 **kwargs) -> ComponentAccumulator:
48 acc = ComponentAccumulator()
49
50 from AthHIPComps.AthHIPCompsConfig import StreamToolCfg
51
52 kwargs.setdefault("MemoryResourcesTool", acc.popToolsAndMerge(
53 MemoryResourcesToolCfg(flags)))
54 kwargs.setdefault("CopyProviderTool",
55 acc.popToolsAndMerge(CopyToolCfg(flags)))
56 kwargs.setdefault("StreamTool", acc.popToolsAndMerge(StreamToolCfg(flags)))
57 kwargs.setdefault("CellSorting", flags.Acts.Device.doCellSorting)
58
59 acc.setPrivateTools(
60 CompFactory.ActsTrk.HIPClusterizationAlgProviderTool(name, **kwargs))
61 return acc
62
63
65 name="HIPSPFormationTool",
66 **kwargs) -> ComponentAccumulator:
67 acc = ComponentAccumulator()
68
69 from AthHIPComps.AthHIPCompsConfig import StreamToolCfg
70
71 kwargs.setdefault("MemoryResourcesTool", acc.popToolsAndMerge(
72 MemoryResourcesToolCfg(flags)))
73 kwargs.setdefault("CopyProviderTool",
74 acc.popToolsAndMerge(CopyToolCfg(flags)))
75 kwargs.setdefault("StreamTool", acc.popToolsAndMerge(StreamToolCfg(flags)))
76
77 acc.setPrivateTools(
78 CompFactory.ActsTrk.HIPSPFormationAlgProviderTool(name, **kwargs))
79 return acc
80
81
83 **kwargs) -> ComponentAccumulator:
84 acc = ComponentAccumulator()
85
86 if (flags.Device.Backend == DeviceBackend.CUDA):
87 acc.setPrivateTools(acc.popToolsAndMerge(
88 CUDAClusterizerToolCfg(flags, **kwargs)))
89 elif ((flags.Device.Backend == DeviceBackend.HIPAMD) or
90 (flags.Device.Backend == DeviceBackend.HIPNVIDIA)):
91 acc.setPrivateTools(acc.popToolsAndMerge(
92 HIPClusterizerToolCfg(flags, **kwargs)))
93 else:
94 raise ValueError(
95 f"Unsupported device backend: {flags.Acts.DeviceBackend}")
96
97 return acc
98
99
101 **kwargs) -> ComponentAccumulator:
102 acc = ComponentAccumulator()
103
104 if flags.Device.Backend == DeviceBackend.CUDA:
105 acc.setPrivateTools(acc.popToolsAndMerge(
106 CUDASPFormationToolCfg(flags, **kwargs)))
107 elif ((flags.Device.Backend == DeviceBackend.HIPAMD) or
108 (flags.Device.Backend == DeviceBackend.HIPNVIDIA)):
109 acc.setPrivateTools(acc.popToolsAndMerge(
110 HIPSPFormationToolCfg(flags, **kwargs)))
111 else:
112 raise ValueError(
113 f"Unsupported device backend: {flags.Acts.DeviceBackend}")
114
115 return acc
116
117
118# ============================================================
119# Algorithm configurations
120# ============================================================
121
123 name="DeviceClusterizationAlg",
124 previousExtension: str = None,
125 **kwargs) -> ComponentAccumulator:
126
127 assert previousExtension is None or isinstance(previousExtension, str)
128 acc = ComponentAccumulator()
129
130 kwargs.setdefault("DeviceMR", acc.popToolsAndMerge(DeviceMemoryResourceToolCfg(flags)))
131 kwargs.setdefault("InputTracccCells", "TracccCells")
132 kwargs.setdefault("OutputTracccMeasurements", "TracccMeasurements")
133 kwargs.setdefault("OutputTracccClusters", "TracccClusterCollection")
134 kwargs.setdefault("RetrieveClusterCells", False)
135 kwargs.setdefault("ClusteringAlgProviderTool", acc.popToolsAndMerge(DeviceClusterizationProviderToolCfg(flags)))
136 kwargs.setdefault("DeviceDigitizationObjectName", "TracccDeviceDigitizationConfig")
137 kwargs.setdefault("DeviceConditionsObjectName", "TracccDeviceCondConfig")
138
139 acc.addEventAlgo(
140 CompFactory.ActsTrk.DeviceClusterizationAlg(name, **kwargs))
141 return acc
142
143
145 name="DeviceSPFormationAlg",
146 previousExtension: str = None,
147 **kwargs) -> ComponentAccumulator:
148
149 assert previousExtension is None or isinstance(previousExtension, str)
150 acc = ComponentAccumulator()
151
152 kwargs.setdefault("DeviceMR", acc.popToolsAndMerge(DeviceMemoryResourceToolCfg(flags)))
153 kwargs.setdefault("InputTracccMeasurements", "TracccMeas")
154 kwargs.setdefault("OutputTracccPixelSpacepoints", "TracccPixelSpacepoints")
155 kwargs.setdefault("SPFormationAlgProviderTool", acc.popToolsAndMerge(DeviceSPFormationProviderToolCfg(flags)))
156 kwargs.setdefault("DeviceDetectorName", "TracccDeviceDetectorGeometry")
157
158 acc.addEventAlgo(
159 CompFactory.ActsTrk.DeviceSPFormationAlg(name, **kwargs))
160 return acc
ComponentAccumulator HIPClusterizerToolCfg(flags, name="HIPClusterizerTool", **kwargs)
ComponentAccumulator DeviceClusterizationAlgCfg(flags, name="DeviceClusterizationAlg", str previousExtension=None, **kwargs)
ComponentAccumulator DeviceClusterizationProviderToolCfg(flags, **kwargs)
ComponentAccumulator DeviceSPFormationAlgCfg(flags, name="DeviceSPFormationAlg", str previousExtension=None, **kwargs)
ComponentAccumulator CUDASPFormationToolCfg(flags, name="CUDASPFormationTool", **kwargs)
ComponentAccumulator DeviceSPFormationProviderToolCfg(flags, **kwargs)
ComponentAccumulator CUDAClusterizerToolCfg(flags, name="CUDAClusterizerTool", **kwargs)
ComponentAccumulator HIPSPFormationToolCfg(flags, name="HIPSPFormationTool", **kwargs)