cudaProcess

class cudaProcess : public gpuProcess

Stage to manage all the kernels and copy commands for a GPU.

This stage is responsible for running the cudaCommandObjects which in turn run the various host<->device copies and kernel calls. Much of the logic exists in the base class gpuProcess, so that class for more details.

Author

Keith Vanderlinde and Andre Renard

Param num_cuda_streams:

The number of CUDA streams to setup, the default is 3 for one host->device, one device->host, and one kernel stream. Can be set higher if more than one stream is need for each type of operation. See cudaCommand and cudaSyncStream for more details.

Public Functions

cudaProcess(kotekan::Config &config, const std::string &unique_name, kotekan::bufferContainer &buffer_container)
virtual ~cudaProcess()
virtual std::vector<gpuCommand*> create_command(const std::string &cmd_name, const std::string &unique_name) override
virtual gpuEventContainer *create_signal() override
virtual void queue_commands(int gpu_frame_counter) override
virtual void register_host_memory(Buffer *host_buffer) override

Public Members

std::shared_ptr<cudaDeviceInterface> device