cuPHY  0.1
CUDA PHY Layer Acceration Library
Data Structures | Typedefs | Functions
Polar Decoder

This section describes application programming interface for polar decoder. More...

Data Structures

struct  cuphyPolarDecoderLaunchCfg_t
 

Typedefs

typedef struct cuphyPolarDecoder * cuphyPolarDecoderHndl_t
 

Functions

cuphyStatus_t cuphyCreatePolarDecoder (cuphyPolarDecoderHndl_t *pPolarDecoderHndl)
 Allocate and initialize a cuPHY polarDecoder object. More...
 
cuphyStatus_t cuphyDestroyPolarDecoder (cuphyPolarDecoderHndl_t polarDecoderHndl)
 Destroys a cuPHY polarDecoder object. More...
 
cuphyStatus_t cuphyPolarDecoderGetDescrInfo (size_t *pDynDescrSizeBytes, size_t *pDynDescrAlignBytes)
 Helper to compute polarDecoder descriptor buffer sizes and alignments. More...
 
cuphyStatus_t cuphySetupPolarDecoder (cuphyPolarDecoderHndl_t polarDecoderHndl, uint16_t nPolCws, __half **pCwTreeLLRsAddrs, cuphyPolarCwPrm_t *pCwPrmsGpu, cuphyPolarCwPrm_t *pCwPrmsCpu, uint32_t **pPolCbEstAddrs, uint8_t *pPolCrcErrorFlags, bool enableCpuToGpuDescrAsyncCpy, void *pCpuDynDescPolar, void *pGpuDynDescPolar, void *pCpuDynDescPolarLLRAddrs, void *pCpuDynDescPolarCBAddrs, cuphyPolarDecoderLaunchCfg_t *pLaunchCfg, cudaStream_t strm)
 Setup cuPHY polar decoder for slot processing. More...
 

Detailed Description

Typedef Documentation

◆ cuphyPolarDecoderHndl_t

typedef struct cuphyPolarDecoder* cuphyPolarDecoderHndl_t

cuPHY uciPolDecoder handle

Function Documentation

◆ cuphyCreatePolarDecoder()

cuphyStatus_t cuphyCreatePolarDecoder ( cuphyPolarDecoderHndl_t pPolarDecoderHndl)

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

Returns CUPHY_STATUS_INVALID_ARGUMENT if pPolarDecoderHndl is NULL.

Returns CUPHY_STATUS_ALLOC_FAILED if a polarDecoder object cannot be allocated

Returns CUPHY_STATUS_SUCCESS if allocation and initialization were successful

Parameters
pPolarDecoderHndl- Address to return the new polarDecoder instance
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_ALLOC_FAILED, CUPHY_STATUS_INVALID_ARGUMENT

cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyPolarDecoderGetDescrInfo,cuphySetupPolarDecoder

◆ cuphyDestroyPolarDecoder()

cuphyStatus_t cuphyDestroyPolarDecoder ( cuphyPolarDecoderHndl_t  polarDecoderHndl)

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

Returns CUPHY_STATUS_INVALID_ARGUMENT if polarDecoderHndl is NULL.

Returns CUPHY_STATUS_SUCCESS if destruction was successful.

Parameters
polarDecoderHndl- handle to previously allocated compCwTreeTypes instance
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyPolarDecoderGetDescrInfo,cuphyCreatePolarDecoder,cuphySetupPolarDecoder

◆ cuphyPolarDecoderGetDescrInfo()

cuphyStatus_t cuphyPolarDecoderGetDescrInfo ( size_t *  pDynDescrSizeBytes,
size_t *  pDynDescrAlignBytes 
)

Computes polarDecoder 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 uciPolDecoder 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,cuphyCreateUciOnPuschSegLLRs1,cuphyDestroyUciOnPuschSegLLRs1

◆ cuphySetupPolarDecoder()

cuphyStatus_t cuphySetupPolarDecoder ( cuphyPolarDecoderHndl_t  polarDecoderHndl,
uint16_t  nPolCws,
__half **  pCwTreeLLRsAddrs,
cuphyPolarCwPrm_t *  pCwPrmsGpu,
cuphyPolarCwPrm_t *  pCwPrmsCpu,
uint32_t **  pPolCbEstAddrs,
uint8_t *  pPolCrcErrorFlags,
bool  enableCpuToGpuDescrAsyncCpy,
void *  pCpuDynDescPolar,
void *  pGpuDynDescPolar,
void *  pCpuDynDescPolarLLRAddrs,
void *  pCpuDynDescPolarCBAddrs,
cuphyPolarDecoderLaunchCfg_t pLaunchCfg,
cudaStream_t  strm 
)

Setup cuPHY polar decoder in preparation towards slot execution

Returns CUPHY_STATUS_SUCCESS if setup is successful.

Parameters
polarDecoderHndl- polar decoder component handle
nPolCws- number of polar codewords
pCwTreeLLRsAddrs- pointer to codeword tree LLR addresses
pCwPrmsGpu- pointer to codeword parameters in GPU
pCwPrmsCpu- pointer to codeword parameters in CPU
pPolCbEstAddrs- pointer to estimated codeblock addresses
pPolCrcErrorFlags- pointer to buffer storing CRC error flags
enableCpuToGpuDescrAsyncCpy- option to copy descriptors from CPU to GPU
pCpuDynDescPolar- pointer to polarDecoderDynDescr descriptor in cpu
pGpuDynDescPolar- pointer to polarDecoderDynDescr descriptor in gpu
pCpuDynDescPolarLLRAddrs- pointer to cwTreeLLRsAddrs in polarDecoderDynDescr descriptor in cpu
pCpuDynDescPolarCBAddrs- pointer to polCbEstAddrs in polarDecoderDynDescr descriptor in cpu
pLaunchCfg- pointer to launch configuration
strm- stream to perform copy
Returns
CUPHY_STATUS_SUCCESS, CUPHY_STATUS_INVALID_ARGUMENT
See also
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyPolarDecoderGetDescrInfo,cuphyDestroyPolarDecoder