The vtkCudaDataSet is a data-container used to communicate data structures between CUDA and host memory in an easy way. This is Part of the Volume Rendering With Cuda implementation.
In the picture you see how the vtkImageDataSet will be embedded into the Pipeline of VTK.
The ImageDataSet will act as a container for communicating sets of arbitrary size from a host memory to the memory of a CUDA card and back again. As a performance leap the data should also be stored within a non-paged memory range on the host side.
The most important part about communication CUDA datasets is to upload/download and synchronize between Host and CUDA memory. These functions will be implemented for this to be safe
- SetCommunicationType (Host or normal memory range)
Used vtkCudaSupport Classes
As this is intertwined with memory access most of the vtkCudaMemory* classes will be used within this class to communicate and store data. Eventually events and streaming will be integrated.
Used Cuda Functions
[NICHOLAS: Please add all the CUDA functions you would like this class to support here]
- Data could be read directly to the vtkCudaDataSet to spare the conversion from a vtkDataSet.
- Host Memory
- Use the CUDA-Memory-Stream for concurrent upload and download of data
- Use the CUDA-Events to signal the end of Data Streaming