cuPHY  0.1
CUDA PHY Layer Acceration Library
Data Structures | Typedefs | Functions
Polar segmentation, de-rate matching and de-interleaving

This section describes application programming interface for polar codeword LLR segmentation + deInterleaving + deRateMatching. More...

Data Structures

struct  cuphyPolSegDeRmDeItlLaunchCfg_t
 

Typedefs

typedef struct cuphyPolSegDeRmDeItl * cuphyPolSegDeRmDeItlHndl_t
 

Functions

cuphyStatus_t cuphyCreatePolSegDeRmDeItl (cuphyPolSegDeRmDeItlHndl_t *pPolSegDeRmDeItlHndl)
 Allocate and initialize a cuPHY polSegDeRmDeItl object. More...
 
cuphyStatus_t cuphyDestroyPolSegDeRmDeItl (cuphyPolSegDeRmDeItlHndl_t polSegDeRmDeItlHndl)
 Destroys a cuPHY polSegDeRmDeItl object. More...
 
cuphyStatus_t cuphyPolSegDeRmDeItlGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute PolSegDeRmDeItl descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphySetupPolSegDeRmDeItl (cuphyPolSegDeRmDeItlHndl_t polSegDeRmDeItlHndl, uint16_t nPolUciSegs, uint16_t nPolCws, const cuphyPolarUciSegPrm_t *pPolUciSegPrmsCpu, const cuphyPolarUciSegPrm_t *pPolUciSegPrmsGpu, __half **pUciSegLLRsAddrs, __half **pCwLLRsAddrs, void *pCpuDynDescDrDi, void *pGpuDynDescDrDi, void *pCpuDynDescDrDiCwAddrs, void *pCpuDynDescDrDiUciAddrs, uint8_t enableCpuToGpuDescrAsyncCpy, cuphyPolSegDeRmDeItlLaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY polSegDeRmDeItl for slot processing. More...
 

Detailed Description

Typedef Documentation

◆ cuphyPolSegDeRmDeItlHndl_t

typedef struct cuphyPolSegDeRmDeItl* cuphyPolSegDeRmDeItlHndl_t

cuPHY polSegDeRmDeItl handle

Function Documentation

◆ cuphyCreatePolSegDeRmDeItl()

cuphyStatus_t cuphyCreatePolSegDeRmDeItl ( cuphyPolSegDeRmDeItlHndl_t pPolSegDeRmDeItlHndl)

Allocates a polSegDeRmDeItl object and returns a handle in the address provided by the caller.

Returns CUPHY_STATUS_INVALID_ARGUMENT if pPolSegDeRmDeItlHndl is NULL.

Returns CUPHY_STATUS_ALLOC_FAILED if a compCwTreeTypes object cannot be allocated

Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful

Parameters
pPolSegDeRmDeItlHndl- Address to return the new polSegDeRmDeItl instance
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_ALLOC_FAILED, CUPHY_STATUS_INVALID_ARGUMENT

cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyPolSegDeRmDeItlGetDescrInfo,cuphySetupPolSegDeRmDeItl

◆ cuphyDestroyPolSegDeRmDeItl()

cuphyStatus_t cuphyDestroyPolSegDeRmDeItl ( cuphyPolSegDeRmDeItlHndl_t  polSegDeRmDeItlHndl)

Destroys a cuPHY polSegDeRmDeItl object that was previously created by cuphyCreatePolSegDeRmDeItl. The handle provided to this function should not be used for any operations after this function returns.

Returns CUPHY_STATUS_INVALID_ARGUMENT if polSegDeRmDeItlHndl is NULL.

Returns CUPHY_STATUS_SUCCESS if destruction was successful.

Parameters
polSegDeRmDeItlHndl- handle to previously allocated compCwTreeTypes instance
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyPucchF0RxGetDescrInfo,cuphyCreatePucchF0Rx,cuphySetupPucchF0Rx

◆ cuphyPolSegDeRmDeItlGetDescrInfo()

cuphyStatus_t cuphyPolSegDeRmDeItlGetDescrInfo ( size_t *  pDynDescrSizeBytes,
size_t *  pDynDescrAlignBytes 
)

Computes PolSegDeRmDeItl descriptor buffer sizes and alignments. To be used by the caller to allocate these buffers (in CPU and GPU memories) and provide them to other PolSegDeRmDeItl APIs

Returns CUPHY_STATUS_INVALID_ARGUMENT if pDynDescrSizeBytes and/or pDynDescrAlignBytes is NULL

Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful.

Parameters
pDynDescrSizeBytes- Size in bytes of dynamic descriptor
pDynDescrAlignBytes- Alignment in bytes of dynamic descriptor
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyCreatePolSegDeRmDeItl,cuphyDestroyPolSegDeRmDeItl

◆ cuphySetupPolSegDeRmDeItl()

cuphyStatus_t cuphySetupPolSegDeRmDeItl ( cuphyPolSegDeRmDeItlHndl_t  polSegDeRmDeItlHndl,
uint16_t  nPolUciSegs,
uint16_t  nPolCws,
const cuphyPolarUciSegPrm_t *  pPolUciSegPrmsCpu,
const cuphyPolarUciSegPrm_t *  pPolUciSegPrmsGpu,
__half **  pUciSegLLRsAddrs,
__half **  pCwLLRsAddrs,
void *  pCpuDynDescDrDi,
void *  pGpuDynDescDrDi,
void *  pCpuDynDescDrDiCwAddrs,
void *  pCpuDynDescDrDiUciAddrs,
uint8_t  enableCpuToGpuDescrAsyncCpy,
cuphyPolSegDeRmDeItlLaunchCfg_t pLaunchCfg,
cudaStream_t  strm 
)

Setup cuPHY polSegDeRmDeItl in preparation towards slot execution

Returns CUPHY_STATUS_SUCCESS if setup is successful.

if(! Returns CUPHY_STATUS_INVALID_ARGUMENT if any of the following are NULL: polSegDeRmDeItlHndl, pPolUciSegPrmsCpu, pPolUciSegPrmsGpu, pUciSegLLRsAddrs, pCwLLRsAddrs, pCpuDynDescDrDi, pGpuDynDescDrDi, pLaunchCfg

Parameters
polSegDeRmDeItlHndl- Handle to previously created polSegDeRmDeItl instance
nPolUciSegs- number of polar UCI segments
nPolCws- number of polar codewords
pPolUciSegPrmsCpu- starting address of polar UCI segment parameters (CPU)
pPolUciSegPrmsGpu- starting address of polar UCI segment parameters (GPU)
pUciSegLLRsAddrs- pointer to uci segment LLR addresses
pCwLLRsAddrs- pointer to cw LLR addresses
pCpuDynDescDrDi- pointer to polSegDeRmDeItlDynDescr descriptor in cpu
pGpuDynDescDrDi- pointer to polSegDeRmDeItlDynDescr descriptor in gpu
pCpuDynDescDrDiCwAddrs- pointer to cw LLR addresses in polSegDeRmDeItlDynDescr descriptor
pCpuDynDescDrDiUciAddrs- pointer to UCI Seg LLR addresses in polSegDeRmDeItlDynDescr descriptor
enableCpuToGpuDescrAsyncCpy- option to copy cpu descriptors from cpu to gpu
pLaunchCfg- pointer to rate matching launch configuration
strm- stream to perform copy
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyPolSegDeRmDeItlGetDescrInfo,cuphyDestroyPolSegDeRmDeItl