84def SharedMemoryResourceToolCfg(flags, **kwargs):
85 '''Default "host/device shared" memory resource provider tool
86 '''
87
88
89 result = ComponentAccumulator()
90
91
92 if flags.Device.Backend == DeviceBackend.CUDA:
93 from AthCUDAServices.AthCUDAServicesConfig \
94 import ManagedMemoryResourceToolCfg as \
95 CUDAManagedMemoryResourceToolCfg
96 result.setPrivateTools(result.popToolsAndMerge(
97 CUDAManagedMemoryResourceToolCfg(flags, **kwargs)))
98 elif flags.Device.Backend == DeviceBackend.HIPAMD or \
99 flags.Device.Backend == DeviceBackend.HIPNVIDIA:
100 from AthHIPComps.AthHIPCompsConfig \
101 import ManagedMemoryResourceToolCfg as \
102 HIPManagedMemoryResourceToolCfg
103 result.setPrivateTools(result.popToolsAndMerge(
104 HIPManagedMemoryResourceToolCfg(flags, **kwargs)))
105 else:
106 raise RuntimeError('No shared memory resource tool is available for '
107 'the selected backend: {}'.format(
108 flags.Device.Backend))
109
110
111 return result
112
113