cuPHY
0.1
CUDA PHY Layer Acceration Library
|
This section describes the PDSCH transmit pipeline functions of the cuPHY application programming interface. More...
Data Structures | |
struct | _cuphyPdschCellDynPrm |
struct | _cuphyPdschCellGrpDynPrm |
struct | _cuphyPdschCwPrm |
struct | _cuphyPdschDataIn |
struct | _cuphyPdschDataOut |
struct | _cuphyPdschDbgPrms |
struct | _cuphyPdschDmrsPrm |
struct | _cuphyPdschDynPrms |
struct | _cuphyPdschStatPrms |
struct | _cuphyPdschUeGrpPrm |
struct | _cuphyPdschUePrm |
struct | _cuphyPmW_t |
Typedefs | |
typedef struct cuphyPdschBatchPrm * | cuphyPdschBatchPrmHndl_t |
typedef struct cuphyPdschTx * | cuphyPdschTxHndl_t |
Enumerations | |
enum | _cuphyPdschProcMode { PDSCH_PROC_MODE_NO_GRAPHS = 0, PDSCH_PROC_MODE_GRAPHS = 1, PDSCH_PROC_MODE_SETUP_ONCE_FALLBACK = 2, PDSCH_INTER_CELL_BATCHING = 4, PDSCH_MAX_PROC_MODES } |
Functions | |
cuphyStatus_t | cuphyBatchPdschTx (cuphyPdschTxHndl_t pdschTxHndl, cuphyPdschDynPrms_t *pDynPrms, cuphyPdschBatchPrmHndl_t batchPrmHndl) |
Batch PDSCH workoad. More... | |
cuphyStatus_t | cuphyCreatePdschBatchPrm (cuphyPdschBatchPrmHndl_t *pBatchPrmHndl) |
Allocate a container for PDSCH batch parameters. More... | |
cuphyStatus_t | cuphyCreatePdschTx (cuphyPdschTxHndl_t *pPdschTxHndl, cuphyPdschStatPrms_t const *pStatPrms) |
Allocate and initialize a cuPHY PDSCH pipeline. More... | |
cuphyStatus_t | cuphyDestroyPdschBatchPrm (cuphyPdschBatchPrmHndl_t batchPrmHndl) |
Destroy container for PDSCH batch parameters. More... | |
cuphyStatus_t | cuphyDestroyPdschTx (cuphyPdschTxHndl_t pdschTxHndl) |
Destroy a cuPHY PDSCH transmit pipeline object. More... | |
cuphyStatus_t | cuphyFallbackBufferSetupPdschTx (cuphyPdschTxHndl_t pdschTxHndl, void *pAddr, cudaStream_t strm) |
Fallback single-cell output buffer setup for cuPHY PDSCH pipeline for slot processing. More... | |
cuphyStatus_t | cuphyFallbackBuffersSetupPdschTx (cuphyPdschTxHndl_t pdschTxHndl, void **pAddr, int fallback_cells, cudaStream_t strm) |
Fallback output buffers setup for multiple cells in cell group for cuPHY PDSCH pipeline for slot processing. More... | |
cuphyStatus_t | cuphyRunPdschTx (cuphyPdschTxHndl_t pdschTxHndl, uint64_t procModeBmsk) |
Run cuPHY PDSCH pipeline processing in specified mode. More... | |
cuphyStatus_t | cuphySetupPdschTx (cuphyPdschTxHndl_t pdschTxHndl, cuphyPdschDynPrms_t *pDynPrms, cuphyPdschBatchPrmHndl_t const batchPrmHndl) |
Setup cuPHY PDSCH pipeline for slot processing. More... | |
typedef struct cuphyPdschBatchPrm* cuphyPdschBatchPrmHndl_t |
PDSCH batch configuration handle
typedef struct cuphyPdschTx* cuphyPdschTxHndl_t |
cuPHY PDSCH transmitter handle
enum _cuphyPdschProcMode |
PDSCH processing modes.
Think of it as a bitmask [...] B2 B1 B0, where B0 is the least significant bit.
B0: streams (0) or graphs (1) mode
B1: setup once fallback if 1; default 0
B2: inter-cell kernel batching if 1; default 0. Only applicable when there are multiple cells in a cell group.
cuphyStatus_t cuphyBatchPdschTx | ( | cuphyPdschTxHndl_t | pdschTxHndl, |
cuphyPdschDynPrms_t * | pDynPrms, | ||
cuphyPdschBatchPrmHndl_t | batchPrmHndl | ||
) |
Batch PDSCH workload across one or more cells, UE-groups and UEs. The batched configuration is used during slot execution
Returns CUPHY_STATUS_INVALID_ARGUMENT if pdschTxHndl
and/or pDynPrms
(or its components) and/or batchPrmHndl
is NULL
Returns CUPHY_STATUS_SUCCESS if setup is successful.
pdschTxHndl | - Handle of PdschTx instance to be setup |
pDynPrms | - Dynamic parameters carrying information needed for slot processing |
batchPrmHndl | - Workload batching information |
cuphyStatus_t cuphyCreatePdschBatchPrm | ( | cuphyPdschBatchPrmHndl_t * | pBatchPrmHndl | ) |
Allocate storage to hold PDSCH batch parameters and return a handle in the address provided by the caller.
Returns CUPHY_STATUS_INVALID_ARGUMENT if pBatchPrmHndl
is NULL.
Returns CUPHY_STATUS_ALLOC_FAILED if a batch parameter container object cannot be allocated
Returns CUPHY_STATUS_SUCCESS if allocation were successful.
pBatchPrmHndl | - Address to return the container for PDSCH batch parameters |
cuphyStatus_t cuphyCreatePdschTx | ( | cuphyPdschTxHndl_t * | pPdschTxHndl, |
cuphyPdschStatPrms_t const * | pStatPrms | ||
) |
Allocate a cuPHY PDSCH transmitter pipeline and returns a handle in the address provided by the caller.
Returns CUPHY_STATUS_INVALID_ARGUMENT if pPdschTxHndl
and/or pStatPrms
is NULL.
Returns CUPHY_STATUS_ALLOC_FAILED if a PdschTx object cannot be allocated
Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful.
pPdschTxHndl | - Address to return the new PdschTx instance |
pStatPrms | - Pointer to PDSCH static parameters to be used in pipeline creation |
cuphyStatus_t cuphyDestroyPdschBatchPrm | ( | cuphyPdschBatchPrmHndl_t | batchPrmHndl | ) |
Destroy a cuPHY context object that was previously created by a call to cuphyCreatePdschBatchPrm. The handle provided to this function should not be used for any operations after this function returns.
Returns CUPHY_STATUS_INVALID_ARGUMENT if batchPrmHndl
is NULL.
Returns CUPHY_STATUS_SUCCESS if destruction was successful.
batchPrmHndl | - previously allocated PDSCH batch parameter instance |
cuphyStatus_t cuphyDestroyPdschTx | ( | cuphyPdschTxHndl_t | pdschTxHndl | ) |
Destroy a cuPHY PDSCH transmitter pipeline object that was previously created by cuphyCreatePdschTx. The handle provided to this function should not be used for any operations after this function returns.
Returns CUPHY_STATUS_INVALID_ARGUMENT if pdschTxHndl
is NULL.
Returns CUPHY_STATUS_SUCCESS if destruction was successful.
pdschTxHndl | - handle to previously allocated PdschTx instance |
cuphyStatus_t cuphyFallbackBufferSetupPdschTx | ( | cuphyPdschTxHndl_t | pdschTxHndl, |
void * | pAddr, | ||
cudaStream_t | strm | ||
) |
Setup the output buffer address for cuPHY PDSCH transmitter pipeline in preparation towards slot execution. This function should only be used in PDSCH_PROC_MODE_SETUP_ONCE_FALLBACK mode and requires that cuphySetupPdschTx() has been called once before it for each pipeline object. It supports only one cell per pipeline.
Returns CUPHY_STATUS_INVALID_ARGUMENT if pdschTxHndl
and/or pAddr
is NULL
Returns CUPHY_STATUS_SUCCESS if buffer setup was successful.
pdschTxHndl | - Handle of PdschTx instance to be setup |
pAddr | - New address for pipeline's output tensor buffer (single cell only) |
strm | - CUDA stream for async. memory copy |
cuphyStatus_t cuphyFallbackBuffersSetupPdschTx | ( | cuphyPdschTxHndl_t | pdschTxHndl, |
void ** | pAddr, | ||
int | fallback_cells, | ||
cudaStream_t | strm | ||
) |
Setup the output buffer addresses for cuPHY PDSCH transmitter pipeline in preparation towards slot execution. This function should only be used in PDSCH_PROC_MODE_SETUP_ONCE_FALLBACK mode and requires that cuphySetupPdschTx() has been called once before it for each pipeline object. It supports multiple cells per pipeline.
Returns CUPHY_STATUS_INVALID_ARGUMENT if pdschTxHndl
and/or pAddr
or its elements are NULL
Returns CUPHY_STATUS_SUCCESS if buffers setup was successful.
pdschTxHndl | - Handle of PdschTx instance to be setup |
pAddr | - Array of addresses for pipeline's output tensor buffers (one buffer per cell). Order of addresses should match the order of dynamic cells in initial, non fallback, setup |
fallback_cells | - Number of cells (same as valid elements in pAddr array). Should match number of cells during initial, non fallback, setup. |
strm | - CUDA stream for async. memory copy |
cuphyStatus_t cuphyRunPdschTx | ( | cuphyPdschTxHndl_t | pdschTxHndl, |
uint64_t | procModeBmsk | ||
) |
Call triggers cuPHY PDSCH transmitter pipeline execution in mode specified by procModeBmsk
Returns CUPHY_STATUS_INVALID_ARGUMENT if pdschTxHndl
is NULL and/or procModeBmsk is not supported.
Returns CUPHY_STATUS_SUCCESS if PdschTx execution is successful.
pdschTxHndl | - Handle of PdschTx instance which is to be triggered |
procModeBmsk | - Processing mode bitmask containing one or more processing modes applicable during this execution |
cuphyStatus_t cuphySetupPdschTx | ( | cuphyPdschTxHndl_t | pdschTxHndl, |
cuphyPdschDynPrms_t * | pDynPrms, | ||
cuphyPdschBatchPrmHndl_t const | batchPrmHndl | ||
) |
Setup cuPHY PDSCH transmitter pipeline (and its components) state in preparation towards slot execution
Returns CUPHY_STATUS_INVALID_ARGUMENT if pdschTxHndl
and/or pDynPrms
and/or batchPrmHndl is NULL
Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful.
pdschTxHndl | - Handle of PdschTx instance to be setup |
pDynPrms | - Dynamic parameters carrying information needed for slot processing |
batchPrmHndl | - Workload batching information |