File indexing completed on 2023-03-17 11:05:46
0001 import FWCore.ParameterSet.Config as cms
0002
0003 import argparse
0004 import sys
0005
0006 parser = argparse.ArgumentParser(prog=sys.argv[0], description='Test CUDA EDProducers')
0007
0008 parser.add_argument("--silent", help="Silence printouts", action="store_true")
0009 parser.add_argument("--includeAnalyzer", help="Include an EDAnalyzer", action="store_true")
0010 parser.add_argument("--accelerator", type=str, help="String for accelerator to enable")
0011
0012 argv = sys.argv[:]
0013 if '--' in argv:
0014 argv.remove("--")
0015 args, unknown = parser.parse_known_args(argv)
0016
0017 process = cms.Process("Test")
0018 process.load("FWCore.MessageService.MessageLogger_cfi")
0019 process.load("HeterogeneousCore.CUDACore.ProcessAcceleratorCUDA_cfi")
0020
0021 process.source = cms.Source("EmptySource")
0022
0023 process.maxEvents.input = 3
0024 if not args.silent:
0025 process.maxEvents.input = 10
0026 process.MessageLogger.cerr.threshold = cms.untracked.string("INFO")
0027 process.MessageLogger.cerr.INFO.limit = process.MessageLogger.cerr.default.limit
0028
0029
0030 if args.accelerator is not None:
0031 process.options.accelerators = [args.accelerator]
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041 from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA
0042
0043 process.load("HeterogeneousCore.CUDATest.prod1Switch_cff")
0044 process.load("HeterogeneousCore.CUDATest.prod5Switch_cff")
0045 process.load("HeterogeneousCore.CUDATest.prod6Switch_cff")
0046
0047
0048 from HeterogeneousCore.CUDATest.testCUDAProducerGPUFirst_cfi import testCUDAProducerGPUFirst
0049 from HeterogeneousCore.CUDATest.testCUDAProducerGPU_cfi import testCUDAProducerGPU
0050 from HeterogeneousCore.CUDATest.testCUDAProducerGPUEW_cfi import testCUDAProducerGPUEW
0051 from HeterogeneousCore.CUDATest.testCUDAProducerGPUtoCPU_cfi import testCUDAProducerGPUtoCPU
0052
0053 process.prod2CUDA = testCUDAProducerGPU.clone(src = "prod1CUDA")
0054 process.prod3CUDA = testCUDAProducerGPU.clone(src = "prod2CUDA")
0055 process.prod4CUDA = testCUDAProducerGPUEW.clone(src = "prod1CUDA")
0056
0057
0058
0059
0060
0061
0062 from HeterogeneousCore.CUDATest.testCUDAProducerCPU_cfi import testCUDAProducerCPU
0063 process.prod2 = SwitchProducerCUDA(
0064 cpu = testCUDAProducerCPU.clone(src = "prod1"),
0065 cuda = testCUDAProducerGPUtoCPU.clone(src = "prod2CUDA")
0066 )
0067 process.prod3 = SwitchProducerCUDA(
0068 cpu = testCUDAProducerCPU.clone(src = "prod2"),
0069 cuda = testCUDAProducerGPUtoCPU.clone(src = "prod3CUDA")
0070 )
0071 process.prod4 = SwitchProducerCUDA(
0072 cpu = testCUDAProducerCPU.clone(src = "prod1"),
0073 cuda = testCUDAProducerGPUtoCPU.clone(src = "prod4CUDA")
0074 )
0075
0076
0077 from HeterogeneousCore.CUDATest.testCUDAAnalyzerGPU_cfi import testCUDAAnalyzerGPU
0078 process.anaCUDA = testCUDAAnalyzerGPU.clone(src="prod6CUDA")
0079 if args.silent:
0080 process.anaCUDA.minValue = 2.3e7
0081 process.anaCUDA.maxValue = 2.5e7
0082
0083 process.out = cms.OutputModule("AsciiOutputModule",
0084 outputCommands = cms.untracked.vstring(
0085 "keep *_prod3_*_*",
0086 "keep *_prod4_*_*",
0087 "keep *_prod6_*_*",
0088 ),
0089 verbosity = cms.untracked.uint32(0),
0090 )
0091
0092 process.prod2Task = cms.Task(process.prod2, process.prod2CUDA)
0093 process.prod3Task = cms.Task(process.prod3, process.prod3CUDA)
0094 process.prod4Task = cms.Task(process.prod4, process.prod4CUDA)
0095
0096 process.t = cms.Task(
0097 process.prod1Task,
0098 process.prod2Task,
0099 process.prod3Task,
0100 process.prod4Task,
0101 process.prod5Task,
0102 process.prod6Task
0103 )
0104 process.p = cms.Path()
0105 if args.includeAnalyzer:
0106 process.p += process.anaCUDA
0107 process.p.associate(process.t)
0108 process.ep = cms.EndPath(process.out)