Dataflow configuration#
APIs to configure DataFlows which have been requested from a CmdProgram.
Each VPU task launch consists of a cupva::Executable associated with a number of Dataflows via the cupva::CmdProgram object. The Dataflows are used to describe the required DMA configuration; these APIs therefore allow programming the PVA’s DMA engine.
The DataFlow APIs accept cuPVA device pointers, which have been allocated by the client. These allocations must be appropriate for the intended use by the PVA’s DMA engine. Buffers must be allocated with correct access permissions. Output buffers must have write permissions and input buffers must have read permissions. The buffers must be large enough such that the DMA accesses are within the allocated buffer range. Allocating a buffer with cupva::mem:Alloc will result in a buffer which may be read/written by the PVA’s DMA engine.
Specifying DataFlows which require VPU triggering creates a contract between the host DataFlow setup code and the device DataFlow triggering code. The user must ensure that any cupva::CmdProgram containing DataFlows which require VPU triggering are submitted with a cupva::Executable. This cupva::Executable must ensure that all DataFlows are triggered to completion. The CmdProgram will not be considered completed by the system until all DataFlows have been completely triggered.
Classes#
- cupva::BaseDataFlow
DataFlow base class.
- cupva::GatherScatterDataFlow
The GatherScatterDataFlow provides the ability to load data from arbitrary addresses or store data to disparate locations in external memory.
- cupva::RasterDataFlow
RasterDataFlow is a DataFlow abstraction for processing tiles by raster scanning.
- cupva::SequenceDataFlow
SequenceDataFlow describes data transfers which execute sequentially.
- cupva::SequenceDataFlowTransfer
Represents a transfer within a SequenceDataFlow .
- cupva::StaticDataFlow
The StaticDataFlow is used to describe a regular tiling pattern.
- cupva::TensorDataFlow
TensorDataFlow is a DataFlow abstraction for accessing 3D tiles.
Enumerations#
- uint32_t cupva::GranType
Enumeration of dataflow trigger granularity.
- uint32_t cupva::PadDirType
Define PadDirType as uint8_t using one-hot encoding.
- uint8_t cupva::PadModeType
Enumeration of dataflow-padding types.
- uint32_t cupva::ScanOrderType
Scan orders of tiling an image.
- uint32_t cupva::TransferModeType
SequenceDataFlowTransfer sequencing mode.