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.