◆ TestCUDAProducerGPUEWTask()
TestCUDAProducerGPUEWTask::TestCUDAProducerGPUEWTask |
( |
edm::ParameterSet const & |
iConfig | ) |
|
|
explicit |
◆ ~TestCUDAProducerGPUEWTask()
TestCUDAProducerGPUEWTask::~TestCUDAProducerGPUEWTask |
( |
| ) |
|
|
overridedefault |
◆ acquire()
Definition at line 71 of file TestCUDAProducerGPUEWTask.cc.
References addSimpleWork(), ctxState_, cudaCheck, devicePtr_, nano_mu_digi_cff::float, gpuAlgo_, hostData_, caHitNtupletGeneratorKernels::iev, iEvent, recoMuon::in, input, label_, TestCUDAProducerGPUKernel::runAlgo(), and srcToken_.
74 edm::LogVerbatim(
"TestCUDAProducerGPUEWTask") <<
label_ <<
" TestCUDAProducerGPUEWTask::acquire begin event " 75 <<
iEvent.id().event() <<
" stream " <<
iEvent.streamID();
94 edm::LogVerbatim(
"TestCUDAProducerGPUEWTask") <<
label_ <<
" TestCUDAProducerGPUEWTask::acquire end event " 95 <<
iEvent.id().event() <<
" stream " <<
iEvent.streamID();
Log< level::Info, true > LogVerbatim
TkSoAView< TrackerTraits > HitToTuple< TrackerTraits > const *__restrict__ int32_t int32_t int iev
TestCUDAProducerGPUKernel gpuAlgo_
static std::string const input
cms::cuda::host::noncached::unique_ptr< float > hostData_
cms::cuda::device::unique_ptr< float[]> devicePtr_
cms::cuda::ContextState ctxState_
edm::EDGetTokenT< cms::cuda::Product< cms::cudatest::Thing > > const srcToken_
cms::cuda::device::unique_ptr< float[]> runAlgo(const std::string &label, cudaStream_t stream) const
#define cudaCheck(ARG,...)
void addSimpleWork(edm::EventNumber_t eventID, edm::StreamID streamID, cms::cuda::ScopedContextTask &ctx)
◆ addSimpleWork()
Definition at line 98 of file TestCUDAProducerGPUEWTask.cc.
References cudaCheck, devicePtr_, nano_mu_digi_cff::float, gpuAlgo_, hostData_, label_, cms::cuda::ScopedContextTask::pushNextTask(), TestCUDAProducerGPUKernel::runSimpleAlgo(), and cms::cuda::impl::ScopedContextBase::stream().
Referenced by acquire().
103 <<
label_ <<
" TestCUDAProducerGPUEWTask::addSimpleWork begin event " << eventID <<
" stream " << streamID
104 <<
" 10th element " << *
hostData_ <<
" not satisfied, queueing more work";
112 <<
label_ <<
" TestCUDAProducerGPUEWTask::addSimpleWork end event " << eventID <<
" stream " << streamID;
115 <<
label_ <<
" TestCUDAProducerGPUEWTask::addSimpleWork event " << eventID <<
" stream " << streamID
116 <<
" 10th element " << *
hostData_ <<
" not queueing more work";
Log< level::Info, true > LogVerbatim
void runSimpleAlgo(float *d_data, cudaStream_t stream) const
TestCUDAProducerGPUKernel gpuAlgo_
cms::cuda::host::noncached::unique_ptr< float > hostData_
cms::cuda::device::unique_ptr< float[]> devicePtr_
#define cudaCheck(ARG,...)
cudaStream_t stream() const
void addSimpleWork(edm::EventNumber_t eventID, edm::StreamID streamID, cms::cuda::ScopedContextTask &ctx)
◆ fillDescriptions()
Definition at line 58 of file TestCUDAProducerGPUEWTask.cc.
References edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, ProducerED_cfi::InputTag, and edm::ConfigurationDescriptions::setComment().
63 "This EDProducer is part of the TestCUDAProducer* family. It models a GPU algorithm this is not the first " 64 "algorithm in the chain of the GPU EDProducers, and that transfers some data from GPU to CPU multiple times " 65 "alternating the transfers and kernel executions (e.g. to decide which kernel to run next based on a value from " 66 "GPU). A synchronization between GPU and CPU is needed after each transfer. The synchronizations are implemented " 67 "with the ExternalWork extension and explicit TBB tasks within the module. Produces " 68 "cms::cuda::Product<cms::cudatest::Thing>.");
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
void setComment(std::string const &value)
◆ produce()
◆ ctxState_
◆ devicePtr_
◆ dstToken_
◆ gpuAlgo_
◆ hostData_
◆ label_
std::string const TestCUDAProducerGPUEWTask::label_ |
|
private |
◆ srcToken_