cuPHY  0.1
CUDA PHY Layer Acceration Library
Data Structures | Macros | Typedefs | Enumerations | Functions
cuphy_api.h File Reference

PHY Layer library header file. More...

#include <cuda_runtime.h>
#include <stdint.h>
#include "cuComplex.h"
#include "cuda_fp16.h"
#include "cuphy.h"

Data Structures

struct  _cuphyBfwDataIn
 BFW Input Data. More...
 
struct  _cuphyBfwDataOut
 BFW Output Data. More...
 
struct  _cuphyBfwDbgPrms
 BFW Debug Parameters. More...
 
struct  _cuphyBfwDynPrm
 BFW Dynamic Parameters. More...
 
struct  _cuphyBfwStatPrms
 BFW Static Parameters. More...
 
struct  _cuphyCellStatPrm
 Struct tracks static, per-cell information, needed both for downlink (DL) and uplink (UL). More...
 
struct  _cuphyCsirsCellDynPrm
 
struct  _cuphyCsirsDataOut
 
struct  _cuphyCsirsDynPrms
 
struct  _cuphyCsirsRrcDynPrm
 
struct  _cuphyCsirsStatPrms
 
struct  _cuphyPdcchCoresetDynPrm
 
struct  _cuphyPdcchDataIn
 
struct  _cuphyPdcchDataOut
 
struct  cuphyPdcchDciPrm_t
 
struct  _cuphyPdcchDynPrms
 
struct  _cuphyPdcchStatPrms
 
struct  _cuphyPdschCellDynPrm
 
struct  _cuphyPdschCellGrpDynPrm
 
struct  _cuphyPdschCwPrm
 
struct  _cuphyPdschDataIn
 
struct  _cuphyPdschDataOut
 
struct  _cuphyPdschDbgPrms
 
struct  _cuphyPdschDmrsPrm
 
struct  _cuphyPdschDynPrms
 
struct  _cuphyPdschStatPrms
 
struct  _cuphyPdschUeGrpPrm
 
struct  _cuphyPdschUePrm
 
struct  _cuphyPerSsBlockDynPrms
 
struct  _cuphyPmW_t
 
struct  _cuphyPrachCellStatPrms
 Cell specific static parameters for PRACH receiver processing. More...
 
struct  _cuphyPrachDataIn
 
struct  _cuphyPrachDataOut
 
struct  _cuphyPrachDynPrms
 
struct  _cuphyPrachOccaDynPrms
 PRACH Occasions Dynamic Parameters. More...
 
struct  _cuphyPrachOccaStatPrms
 PRACH Occasions Static Parameter. More...
 
struct  _cuphyPrachStatPrms
 Static parameters to process all cell-group PRACH receiver. More...
 
struct  _cuphyPucchCellDynPrm
 Per cell PUCCH dynamic parameters. More...
 
struct  _cuphyPucchCellGrpDynPrm
 PUCCH Cell group dynamic parameters. More...
 
struct  _cuphyPucchDataIn
 PUCCH Input Data. More...
 
struct  _cuphyPucchDataOut
 PUCCH output data. The UE ordering in buffers is identical to input UCI parameter (pFxUciPrms within cuphyPucchCellGrpDynPrm_t) input ordering. More...
 
struct  _cuphyPucchDbgPrms
 PUCCH Debug Parameters. More...
 
struct  _cuphyPucchDynPrms
 PUCCH Dynamic Parameters. More...
 
struct  _cuphyPucchStatPrms
 Cell-group API. More...
 
struct  _cuphyPuschCellDynPrm
 Per cell dynamic parameter. More...
 
struct  _cuphyPuschDataOut
 Output Data for PUSCH. More...
 
struct  _cuphyPuschDmrsPrm
 DMRS information. More...
 
struct  _cuphyPuschDynDbgPrms
 PUSCH Dynamic Logging API. More...
 
struct  _cuphyPuschDynPrms
 PUSCH Dynamic Parameters. More...
 
struct  _cuphyPuschStatDbgPrms
 PUSCH Debug API. More...
 
struct  _cuphyPuschStatPrms
 PUSCH Static Parameters. More...
 
struct  _cuphyPuschUeGrpPrm
 Co-scheduled UE group parameters. More...
 
struct  _cuphyPuschUePrm
 Per UE parameters. More...
 
struct  _cuphySrsCellDynPrm
 Per cell dynamic parameter. More...
 
struct  _cuphySrsCellGrpDynPrm
 Cell group dynamic parameters. More...
 
struct  _cuphySrsDataIn
 SRS Input Data. More...
 
struct  _cuphySrsDataOut
 SRS Output Data. More...
 
struct  _cuphySrsDbgPrms
 SRS Debug Parameters. More...
 
struct  _cuphySrsDynPrms
 SRS Dynamic Parameters. More...
 
struct  _cuphySrsStatPrms
 SRS Cell-group API. More...
 
struct  _cuphySsbDataIn
 
struct  _cuphySsbDataOut
 
struct  _cuphySsbDynPrms
 
struct  _cuphySsbStatPrms
 
struct  _cuphyUciOnPusch
 Uci on pusch parameters. More...
 
struct  cuphyPuschCellGrpDynPrm_t
 Cell group dynamic parameters. More...
 
struct  cuphyPuschDataInOut_t
 PUSCH In/Out Data. More...
 

Macros

#define CUPHY_PRACH_RX_NUM_PREAMBLE   (64)
 

Typedefs

typedef struct cuphyBfwTx * cuphyBfwTxHndl_t
 
typedef struct cuphyCsirsTx * cuphyCsirsTxHndl_t
 
typedef struct cuphyPdcchTx * cuphyPdcchTxHndl_t
 
typedef struct cuphyPdschBatchPrm * cuphyPdschBatchPrmHndl_t
 
typedef struct cuphyPdschTx * cuphyPdschTxHndl_t
 
typedef struct cuphyPrachRx * cuphyPrachRxHndl_t
 
typedef struct cuphyPucchRx * cuphyPucchRxHndl_t
 
typedef struct cuphyPuschRx * cuphyPuschRxHndl_t
 
typedef struct cuphySrsRx * cuphySrsRxHndl_t
 
typedef struct cuphySsbTx * cuphySsbTxHndl_t
 

Enumerations

enum  _cuphyBfwTxProcMode { ,
  BFW_PROC_MODE_WITH_GRAPH = 0x1,
  BFW_MAX_PROC_MODES
}
 BFW processing modes. More...
 
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
}
 
enum  _cuphyPrachRxProcMode { ,
  PRACH_PROC_MODE_WITH_GRAPH = 0x1,
  PRACH_MAX_PROC_MODES
}
 PRACH processing modes. More...
 
enum  _cuphyPucchProcMode { ,
  PUCCH_PROC_MODE_FULL_SLOT_GRAPHS = 0x1,
  PUCCH_MAX_PROC_MODES
}
 PUSCH processing modes. More...
 
enum  _cuphyPuschLdpcKernelLaunch { ,
  PUSCH_RX_LDPC_STREAM_POOL = 0x2,
  PUSCH_RX_LDPC_STREAM_SEQUENTIAL = 0x4,
  PUSCH_RX_ENABLE_LDPC_DEC_SINGLE_STREAM_OPT = 0x8
}
 PUSCH Kernel Launch Types. More...
 
enum  _cuphyPuschProcMode { ,
  PUSCH_PROC_MODE_FULL_SLOT_GRAPHS = 0x1,
  PUSCH_MAX_PROC_MODES
}
 PUSCH processing modes. More...
 
enum  _cuphySrsProcMode { ,
  SRS_PROC_MODE_FULL_SLOT_GRAPHS = 0x1,
  SRS_MAX_PROC_MODES
}
 SRS processing modes. More...
 

Functions

cuphyStatus_t cuphyBatchPdschTx (cuphyPdschTxHndl_t pdschTxHndl, cuphyPdschDynPrms_t *pDynPrms, cuphyPdschBatchPrmHndl_t batchPrmHndl)
 Batch PDSCH workoad. More...
 
cuphyStatus_t cuphyBatchPuschRx (cuphyPuschRxHndl_t puschRxHndl, cuphyPuschDynPrms_t *pDynPrms, cuphyPuschBatchPrmHndl_t batchPrmHndl)
 Batch PUSCH workoad. More...
 
cuphyStatus_t cuphyCreateBfwTx (cuphyBfwTxHndl_t *pBfwTxHndl, cuphyBfwStatPrms_t const *pStatPrms, cudaStream_t cuStream)
 Allocates and initializes a cuPHY BFW pipeline. More...
 
cuphyStatus_t cuphyCreateCsirsTx (cuphyCsirsTxHndl_t *pCsirsTxHndl, cuphyCsirsStatPrms_t const *pStatPrms)
 Allocate and initialize a cuPHY CSI-RS pipeline. More...
 
cuphyStatus_t cuphyCreatePdcchTx (cuphyPdcchTxHndl_t *pPdcchTxHndl, cuphyPdcchStatPrms_t const *pStatPrms)
 Allocate and initialize a cuPHY PDCCH pipeline. 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 cuphyCreatePrachRx (cuphyPrachRxHndl_t *pPrachRxHndl, cuphyPrachStatPrms_t const *pStatPrms)
 Allocate and initialize a cuPHY PRACH pipeline. More...
 
cuphyStatus_t cuphyCreatePucchRx (cuphyPucchRxHndl_t *pPucchRxHndl, cuphyPucchStatPrms_t const *pStatPrms, cudaStream_t cuStream)
 Allocates and initializes a cuPHY PUCCH pipeline. More...
 
cuphyStatus_t cuphyCreatePuschBatchPrm (cuphyPuschBatchPrmHndl_t *pBatchPrmHndl)
 Allocate a container for PUSCH batch parameters. More...
 
cuphyStatus_t cuphyCreatePuschRx (cuphyPuschRxHndl_t *pPuschRxHndl, cuphyPuschStatPrms_t const *pStatPrms, cudaStream_t cuStream)
 Allocates and initializes a cuPHY PUSCH pipeline. More...
 
cuphyStatus_t cuphyCreateSrsRx (cuphySrsRxHndl_t *pSrsRxHndl, cuphySrsStatPrms_t const *pStatPrms, cudaStream_t cuStream)
 Allocates and initializes a cuPHY SRS pipeline. More...
 
cuphyStatus_t cuphyCreateSsbTx (cuphySsbTxHndl_t *pSsbTxHndl, cuphySsbStatPrms_t const *pStatPrms)
 Allocate and initialize a cuPHY SSB pipeline. More...
 
cuphyStatus_t cuphyDestroyBfwTx (cuphyBfwTxHndl_t bfwTxHndl)
 Destroys a cuPHY BFW receiver pipeline object. More...
 
cuphyStatus_t cuphyDestroyCsirsTx (cuphyCsirsTxHndl_t csirsTxHndl)
 Destroy a cuPHY CSI-RS transmit pipeline object. More...
 
cuphyStatus_t cuphyDestroyPdcchTx (cuphyPdcchTxHndl_t pdcchTxHndl)
 Destroy a cuPHY PDCCH transmit pipeline object. 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 cuphyDestroyPrachRx (cuphyPrachRxHndl_t pPrachRxHndl)
 Destroy a cuPHY PRACH receiver pipeline object. More...
 
cuphyStatus_t cuphyDestroyPucchRx (cuphyPucchRxHndl_t pucchRxHndl)
 Destroys a cuPHY PUCCH receiver pipeline object. More...
 
cuphyStatus_t cuphyDestroyPuschBatchPrm (cuphyPuschBatchPrmHndl_t batchPrmHndl)
 Destroys container for PUSCH batch parameters. More...
 
cuphyStatus_t cuphyDestroyPuschRx (cuphyPuschRxHndl_t puschRxHndl)
 Destroys a cuPHY PUSCH receiver pipeline object. More...
 
cuphyStatus_t cuphyDestroySrsRx (cuphySrsRxHndl_t srsRxHndl)
 Destroys a cuPHY SRS receiver pipeline object. More...
 
cuphyStatus_t cuphyDestroySsbTx (cuphySsbTxHndl_t ssbTxHndl)
 Destroy a cuPHY SSB 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 cuphyRunBfwTx (cuphyBfwTxHndl_t bfwTxHndl, uint64_t procModeBmsk)
 Run cuPHY BFW computation pipeline in specified mode. More...
 
cuphyStatus_t cuphyRunCsirsTx (cuphyCsirsTxHndl_t csirsTxHndl)
 Run cuPHY CSI-RS pipeline processing in specified mode. More...
 
cuphyStatus_t cuphyRunPdcchTx (cuphyPdcchTxHndl_t pdcchTxHndl, uint64_t procModeBmsk)
 Run cuPHY PDCCH pipeline processing in specified mode. More...
 
cuphyStatus_t cuphyRunPdschTx (cuphyPdschTxHndl_t pdschTxHndl, uint64_t procModeBmsk)
 Run cuPHY PDSCH pipeline processing in specified mode. More...
 
cuphyStatus_t cuphyRunPrachRx (cuphyPrachRxHndl_t pPrachRxHndl)
 Run cuPHY PRACH pipeline processing in specified mode. More...
 
cuphyStatus_t cuphyRunPucchRx (cuphyPucchRxHndl_t pucchRxHndl, uint64_t procModeBmsk)
 Run cuPHY PUCCH pipeline processing in specified mode. More...
 
cuphyStatus_t cuphyRunPuschRx (cuphyPuschRxHndl_t puschRxHndl)
 Run cuPHY PUSCH pipeline processing in specified mode. More...
 
cuphyStatus_t cuphyRunSrsRx (cuphySrsRxHndl_t srsRxHndl, uint64_t procModeBmsk)
 Run cuPHY SRS receive pipeline processing in specified mode. More...
 
cuphyStatus_t cuphyRunSsbTx (cuphySsbTxHndl_t ssbTxHndl, uint64_t procModeBmsk)
 Run cuPHY SSB pipeline processing in specified mode. More...
 
cuphyStatus_t cuphySetupBfwTx (cuphyBfwTxHndl_t bfwTxHndl, cuphyBfwDynPrms_t *pDynPrms)
 Setup cuPHY BFW computation pipeline. More...
 
cuphyStatus_t cuphySetupCsirsTx (cuphyCsirsTxHndl_t csirsTxHndl, cuphyCsirsDynPrms_t *pDynPrms)
 Setup cuPHY CSI-RS pipeline for slot processing. More...
 
cuphyStatus_t cuphySetupPdcchTx (cuphyPdcchTxHndl_t pdcchTxHndl, cuphyPdcchDynPrms_t *pDynPrms)
 Setup cuPHY PDCCH pipeline for slot processing. More...
 
cuphyStatus_t cuphySetupPdschTx (cuphyPdschTxHndl_t pdschTxHndl, cuphyPdschDynPrms_t *pDynPrms, cuphyPdschBatchPrmHndl_t const batchPrmHndl)
 Setup cuPHY PDSCH pipeline for slot processing. More...
 
cuphyStatus_t cuphySetupPrachRx (cuphyPrachRxHndl_t pPrachRxHndl, cuphyPrachDynPrms_t *pDynPrms)
 Setup cuPHY PRACH pipeline for slot processing. More...
 
cuphyStatus_t cuphySetupPucchRx (cuphyPucchRxHndl_t pucchRxHndl, cuphyPucchDynPrms_t *pDynPrms, cuphyPucchBatchPrmHndl_t const batchPrmHndl)
 Setup cuPHY PUCCH pipeline for slot processing. More...
 
cuphyStatus_t cuphySetupPuschRx (cuphyPuschRxHndl_t puschRxHndl, cuphyPuschDynPrms_t *pDynPrms, cuphyPuschBatchPrmHndl_t const batchPrmHndl)
 Setup cuPHY PUSCH pipeline for slot processing. More...
 
cuphyStatus_t cuphySetupSrsRx (cuphySrsRxHndl_t srsRxHndl, cuphySrsDynPrms_t *pDynPrms, cuphySrsBatchPrmHndl_t const batchPrmHndl)
 Setup cuPHY SRS receive pipeline for slot processing. More...
 
cuphyStatus_t cuphySetupSsbTx (cuphySsbTxHndl_t ssbTxHndl, cuphySsbDynPrms_t *pDynPrms)
 Setup cuPHY SSB pipeline for slot processing. More...
 
cuphyStatus_t cuphyUpdatePdschDmrsParams (PdschDmrsParams *h_dmrs_params, cuphyPdschDynPrms_t *dyn_params, const cuphyPdschStatPrms_t *static_params, PdschUeGrpParams *pdsch_ue_group_params)
 : Populate PdschDmrsParams struct on the host. More...
 
cuphyStatus_t cuphyWriteDbgBufSynch (cuphyPuschRxHndl_t puschRxHndl, cudaStream_t cuStream)
 Run cuPHY save Pusch debug buffer. More...
 
cuphyStatus_t cuphyWriteDbgBufSynchBfw (cuphyBfwTxHndl_t bfwTxHndl, cudaStream_t cuStream)
 Run cuPHY save BFW computation debug buffer. More...
 
cuphyStatus_t cuphyWriteDbgBufSynchPucch (cuphyPucchRxHndl_t pucchRxHndl, cudaStream_t cuStream)
 Run cuPHY save Pucch debug buffer. More...
 
cuphyStatus_t cuphyWriteDbgBufSynchSrs (cuphySrsRxHndl_t srsRxHndl, cudaStream_t cuStream)
 Run cuPHY save SRS receiver debug buffer. More...
 

Detailed Description

Header file for the cuPHY API

Function Documentation

◆ cuphyUpdatePdschDmrsParams()

cuphyStatus_t cuphyUpdatePdschDmrsParams ( PdschDmrsParams h_dmrs_params,
cuphyPdschDynPrms_t *  dyn_params,
const cuphyPdschStatPrms_t *  static_params,
PdschUeGrpParams pdsch_ue_group_params 
)
Parameters
[in,out]h_dmrs_paramspointer to DMRS config params struct on the host. This struct is also used in modulation.
[in]dyn_paramspointer to dymanic parameters struct, provided during PDSCH setup, on the host.
[in]static_paramspointer to static cell parameters, provided during PDSCH creation, on the host.
[in,out]pdsch_ue_group_paramspointer to UE group specific parameters needed when CSI-RS parameters are present
Returns
CUPHY_STATUS_SUCCESS or CUPHY_STATUS_INVALID_ARGUMENT