cuPHY
0.1
CUDA PHY Layer Acceration Library
|
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... | |
typedef struct cuphyPolSegDeRmDeItl* cuphyPolSegDeRmDeItlHndl_t |
cuPHY polSegDeRmDeItl handle
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
pPolSegDeRmDeItlHndl | - Address to return the new polSegDeRmDeItl instance |
cuphyStatus_t,cuphyGetErrorName,cuphyGetErrorString,cuphyPolSegDeRmDeItlGetDescrInfo,cuphySetupPolSegDeRmDeItl
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.
polSegDeRmDeItlHndl | - handle to previously allocated compCwTreeTypes instance |
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.
pDynDescrSizeBytes | - Size in bytes of dynamic descriptor |
pDynDescrAlignBytes | - Alignment in bytes of dynamic descriptor |
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
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 |