cuPHY  0.1
CUDA PHY Layer Acceration Library
Data Structures | Functions
CRC Decode

This section describes the puschRx CRC deocder (transport block + code block + segmentation) functions of the cuPHY application programming interface. More...

Data Structures

struct  cuphyPuschRxCrcDecodeHndl_t
 

Functions

cuphyStatus_t cuphyCreatePuschRxCrcDecode (cuphyPuschRxCrcDecodeHndl_t *puschRxCrcDecodeHndl, int reverseBytes)
 Allocate and initialize a cuPHY PuschRx crc decode object. More...
 
cuphyStatus_t cuphyDestroyPuschRxCrcDecode (cuphyPuschRxCrcDecodeHndl_t puschRxCrcDecodeHndl)
 Destroys a cuPHY PUSCH crc decode object. More...
 
cuphyStatus_t cuphyPuschRxCrcDecodeGetDescrInfo (size_t *pDescrSizeBytes, size_t *pDescrAlignBytes)
 Helper to compute cuPHY crc decoder descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphySetupPuschRxCrcDecode (cuphyPuschRxCrcDecodeHndl_t puschRxCrcDecodeHndl, uint16_t nSchUes, uint16_t *pSchUserIdxsCpu, uint32_t *pOutputCBCRCs, uint8_t *pOutputTBs, const uint32_t *pInputCodeBlocks, uint32_t *pOutputTBCRCs, const PerTbParams *pTbPrmsCpu, const PerTbParams *pTbPrmsGpu, void *pCpuDesc, void *pGpuDesc, uint8_t enableCpuToGpuDescrAsyncCpy, cuphyPuschRxCrcDecodeLaunchCfg_t *pCbCrcLaunchCfg, cuphyPuschRxCrcDecodeLaunchCfg_t *pTbCrcLaunchCfg, cudaStream_t strm)
 Setup cuPHY crc decode for slot processing. More...
 

Detailed Description

Function Documentation

◆ cuphyCreatePuschRxCrcDecode()

cuphyStatus_t cuphyCreatePuschRxCrcDecode ( cuphyPuschRxCrcDecodeHndl_t *  puschRxCrcDecodeHndl,
int  reverseBytes 
)

Allocates a cuPHY pusch crc decode object and returns a handle in the address provided by the caller.

Returns CUPHY_STATUS_INVALID_ARGUMENT if puschRxCrcDecodeHndl is NULL.

Returns CUPHY_STATUS_ALLOC_FAILED if a PuschRxCrcDecode object cannot be allocated

Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful

Parameters
puschRxCrcDecodeHndl- Address to return the new PuschRxRateMatch instance
reverseBytes- 0 or 1. Option to reverse bytes during crc.
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_ALLOC_FAILED, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyPuschRxCrcDecodeGetDescrInfo,cuphySetupPuschRxCrcDecode,cuphyDestroyPuschRxCrcDecode

◆ cuphyDestroyPuschRxCrcDecode()

cuphyStatus_t cuphyDestroyPuschRxCrcDecode ( cuphyPuschRxCrcDecodeHndl_t  puschRxCrcDecodeHndl)

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

Returns CUPHY_STATUS_INVALID_ARGUMENT if puschRxCrcDecodeHndl is NULL.

Returns CUPHY_STATUS_SUCCESS if destruction was successful.

Parameters
puschRxCrcDecodeHndl- handle to previously allocated PuschRxRateMatch instance
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyPuschRxCrcDecodeGetDescrInfo,cuphyCreatePuschRxCrcDecode,cuphySetupPuschRxCrcDecode

◆ cuphyPuschRxCrcDecodeGetDescrInfo()

cuphyStatus_t cuphyPuschRxCrcDecodeGetDescrInfo ( size_t *  pDescrSizeBytes,
size_t *  pDescrAlignBytes 
)

Computes cuPHY PUSCH crc decoder 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 PuschRxCrcDecode APIs

Returns CUPHY_STATUS_INVALID_ARGUMENT if pDescrSizeBytes and/or pDescrAlignBytes

Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful.

Parameters
pDescrSizeBytes- Size in bytes descriptor
pDescrAlignBytes- Alignment of descriptor
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyCreatePuschRxRateMatch,cuphyDestroyPuschRxRateMatch

◆ cuphySetupPuschRxCrcDecode()

cuphyStatus_t cuphySetupPuschRxCrcDecode ( cuphyPuschRxCrcDecodeHndl_t  puschRxCrcDecodeHndl,
uint16_t  nSchUes,
uint16_t *  pSchUserIdxsCpu,
uint32_t *  pOutputCBCRCs,
uint8_t *  pOutputTBs,
const uint32_t *  pInputCodeBlocks,
uint32_t *  pOutputTBCRCs,
const PerTbParams pTbPrmsCpu,
const PerTbParams pTbPrmsGpu,
void *  pCpuDesc,
void *  pGpuDesc,
uint8_t  enableCpuToGpuDescrAsyncCpy,
cuphyPuschRxCrcDecodeLaunchCfg_t *  pCbCrcLaunchCfg,
cuphyPuschRxCrcDecodeLaunchCfg_t *  pTbCrcLaunchCfg,
cudaStream_t  strm 
)

Setup cuPHY PUSCH crc decode in preparation towards slot execution

Returns CUPHY_STATUS_SUCCESS if setup is successful.

Returns CUPHY_STATUS_INVALID_ARGUMENT if any inputs NULL.

Parameters
puschRxCrcDecodeHndl- Address to return the PuschRxCrcDecode instance
nSchUes- number of users with sch data
pSchUserIdxsCpu- Address of sch user indicies
pOutputCBCRCs- Address of where to strore CB crc results
pOutputTBs- Address of where to store estimated transport blocks (w/h crc removed)
pInputCodeBlocks- Address of input codeblocks (output of LDPC)
pOutputTBCRCs- Address of where to stroe TB crc results
pTbPrmsCpu- Address of tb parameters in CPU
pTbPrmsGpu- Address of tb parameters in GPU
pCpuDesc- Address of descriptor in CPU
pGpuDesc- Address of descriptor in GPU
enableCpuToGpuDescrAsyncCpy- Option to copy desc from CPU to GPU
pCbCrcLaunchCfg- Address of CB CRC decoder launch configuration
pTbCrcLaunchCfg- Address of TB CRC decoder launch configuration
strm- stream to perform copy
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyPuschRxCrcDecodeGetDescrInfo,cuphyCreatePuschRxCrcDecode,cuphyDestroyPuschRxCrcDecode