Difference between revisions of "Cuda:VtkCudaDataSet"
m (VtkCudaDataSet moved to Cuda:VtkCudaDataSet) |
m (Text replacement - "http://www.slicer.org/slicerWiki/index.php/" to "https://www.slicer.org/wiki/") |
||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
The vtkCudaDataSet is a data-container used to communicate data structures between CUDA and host memory in an easy way. | 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 [ | + | This is Part of the [https://www.slicer.org/wiki/Slicer3:Volume_Rendering_With_Cuda Volume Rendering With Cuda] implementation. |
=Overview= | =Overview= | ||
[[Image:VtkCudaDataSet.png|frame|none|VTK integration of the Cuda DataSet for Images]] | [[Image:VtkCudaDataSet.png|frame|none|VTK integration of the Cuda DataSet for Images]] |
Latest revision as of 17:59, 10 July 2017
Home < Cuda:VtkCudaDataSetThe 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.
Contents
Overview
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.
Implementation
Synchronization
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
- SetDataSize
- SetCommunicationType (Host or normal memory range)
- Upload
- Download
- Synchronize
- Events:
- HostMemoryChanged
- CudaMemoryChanged
- HostUpdateFinished
- CudaUpdateFinished
- ...
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]
Performance Issues
- 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