This section describes the modulation function(s) of the cuPHY application programming interface.
More...
|
cuphyStatus_t | cuphyModulationGetDescrInfo (size_t *pDescrSizeBytes, size_t *pDescrAlignBytes) |
| : Compute descriptor size and alignment for modulation mapper. More...
|
|
cuphyStatus_t | cuphySetupModulation (cuphyModulationLaunchConfig_t modulationLaunchConfig, PdschDmrsParams *d_params, cuphyTensorDescriptor_t input_desc, const void *modulation_input, int max_num_symbols, int max_bits_per_layer, int num_TBs, PdschPerTbParams *workspace, cuphyTensorDescriptor_t output_desc, void *modulation_output, void *cpu_desc, void *gpu_desc, uint8_t enable_desc_async_copy, cudaStream_t strm) |
| : Setup modulation mapper component. More...
|
|
◆ cuphyModulationGetDescrInfo()
cuphyStatus_t cuphyModulationGetDescrInfo |
( |
size_t * |
pDescrSizeBytes, |
|
|
size_t * |
pDescrAlignBytes |
|
) |
| |
- Parameters
-
[in,out] | pDescrSizeBytes | Size in bytes of descriptor |
[in,out] | pDescrAlignBytes | Alignment in bytes of descriptor |
- Returns
- CUPHY_STATUS_SUCCESS or CUPHY_STATUS_INVALID_ARGUMENT
◆ cuphySetupModulation()
cuphyStatus_t cuphySetupModulation |
( |
cuphyModulationLaunchConfig_t |
modulationLaunchConfig, |
|
|
PdschDmrsParams * |
d_params, |
|
|
cuphyTensorDescriptor_t |
input_desc, |
|
|
const void * |
modulation_input, |
|
|
int |
max_num_symbols, |
|
|
int |
max_bits_per_layer, |
|
|
int |
num_TBs, |
|
|
PdschPerTbParams * |
workspace, |
|
|
cuphyTensorDescriptor_t |
output_desc, |
|
|
void * |
modulation_output, |
|
|
void * |
cpu_desc, |
|
|
void * |
gpu_desc, |
|
|
uint8_t |
enable_desc_async_copy, |
|
|
cudaStream_t |
strm |
|
) |
| |
- Parameters
-
[in] | modulationLaunchConfig | Pointer to cuphyModulationLaunchConfig. |
[in] | d_params | Pointer to PdschDmrsParams on the device. If nullptr, then symbols are allocated contiguously, starting from zero in modulation_output. If not, symbols are allocated in the appropriate Rbs, start position, in the {273*12, 14, 16} modulation_output tensor. |
[in] | input_desc | input tensor descriptor; dimension ceil(num_bits/32.0). Not used. |
[in] | modulation_input | pointer to input tensor data Data is expected to be contiguously allocated for every layer without any gaps. Each layer should start at a uint32_t aligned boundary. |
[in] | max_num_symbols | maximum number of symbols across all TBs. |
[in] | max_bits_per_layer | maximum number of bits per layer across all TBs in modulation_input. |
[in] | num_TBs | number of Transport Blocks contained in modulation_input |
[in] | workspace | pointer to # TBs PerTBParams struct on the device. Only fields G and Qm are used. |
[in] | output_desc | output tensor descriptor; dimension (num_bits / modulation_order) if d_params=nullptr or {273*12, 14, 16} otherwise. Not used. |
[in,out] | modulation_output | pointer to output tensor (preallocated) Each symbol is a complex number using half-precision for the real and imaginary parts. |
[in] | cpu_desc | Pointer to descriptor in CPU memory |
[in] | gpu_desc | Pointer to descriptor in GPU memory |
[in] | enable_desc_async_copy | async copy CPU descriptor into GPU if set. |
[in] | strm | CUDA stream for async copy |
- Returns
- CUPHY_STATUS_SUCCESS or CUPHY_STATUS_INVALID_ARGUMENT