RadarNCI (Non-Coherent Integration)#

Functions#

NVCVStatus pvaNciCreate(NVCVOperatorHandle *handle, const NVCVTensorRequirements *inTensorRequirements, const NVCVTensorRequirements **outTensorRequirements, PVARadarNCIParams *params)

Constructs an instance of the NCI operator.

NVCVStatus pvaNciSubmit(NVCVOperatorHandle handle, cudaStream_t stream, NVCVTensorHandle const *inHandles, NVCVTensorHandle *outHandles)

Submits the NCI operator to a CUDA stream.

NVCVStatus pvaNciSubmit(NVCVOperatorHandle handle, cupvaStream_t stream, NVCVTensorHandle const *inHandles, NVCVTensorHandle *outHandles)

Submits the NCI operator to a cuPVA stream.

Structs#

PVARadarNCIParams

Parameters for the NCI operator.

Functions#

NVCVStatus pvaNciCreate(
NVCVOperatorHandle *handle,
const NVCVTensorRequirements *inTensorRequirements,
const NVCVTensorRequirements **outTensorRequirements,
PVARadarNCIParams *params,
)#

Constructs an instance of the NCI operator.

The tensor has the following dimensions: Nb - number of range bins (samples), Nr - number of Doppler bins (ramps), NofRx - number of RX antennas, Limitations: NofRx must be a power of 2 with a maximum of 64. Nr - number of Doppler bins (ramps) should be a multiple of NofRx

FT2D: std::complex<int32_t> [Nb][NofRx][Nr] Data type: 2S32 Data layout: HCW, H – number of range bins, C – number of RX antennas, W – number of Doppler bins

  • Tensor 0: NciRx The tensor has the following dimensions: Nb - number of range bins (samples), Nr - number of Doppler bins (ramps) NciRx: uint32_t [Nb][Nr] Data type: U32 Data layout: HW, H – number of range bins, W – number of Doppler bins

    Tensor 1: NciFinal The tensor has the following dimensions: Nb - number of range bins (samples), Nr - number of Doppler bins (ramps), repeatFold - number of times the Doppler bins are repeated NciFinal: uint32_t [Nb][Nr/repeatFold] Data type: U32 Data layout: HW, H – number of range bins, W – number of Doppler bins divided by repeatFold

    Tensor 2: NoiseEstimate (only present if noiseEstimationEnabled is true, set to NULL if noiseEstimationEnabled is false) The tensor has the following dimensions: Nb - number of range bins (samples) NoiseEstimate: uint32_t [Nb] Data type: U32 Data layout: W, W – number of range bins

Parameters:
  • handle[out] Pointer to where the operator instance handle will be written. Must not be NULL.

  • inTensorRequirements[in] Pointer to a NVCVTensorRequirements structure containing tensor rank, shape, layout, and data type information.

    • The inTensorRequirements corresponds to the dimensions of the FT2D tensor

  • outTensorRequirements[in] Pointer to 3 NVCVTensorRequirements structure pointers containing tensor rank, shape, layout, and data type information.

  • params[in] Pointer to a PVARadarNCIParams structure containing the NCI parameters. See PVARadarNCIParams for more details.

Return values:
  • NVCV_ERROR_INVALID_ARGUMENT – Handle is null or some parameter is outside valid range.

  • NVCV_ERROR_OUT_OF_MEMORY – Not enough memory to create the operator.

  • NVCV_SUCCESS – Operation executed successfully.

NVCVStatus pvaNciSubmit(
NVCVOperatorHandle handle,
cudaStream_t stream,
NVCVTensorHandle const *inHandles,
NVCVTensorHandle *outHandles,
)#

Submits the NCI operator to a CUDA stream.

Note

CUDA stream support requirements:

  • PVA SDK 2.7.0 or later

  • Jetpack 7 or later

  • DriveOS 7 or later

  • x86 Emulator is not supported

Parameters:
  • handle[in] Handle to the operator.

  • stream[in] Handle to a valid CUDA stream.

  • inHandles[in] Pointer to array of input NVCVTensorHandle.

  • outHandles[out] Pointer to array of output NVCVTensorHandle.

Return values:
  • NVCV_ERROR_INVALID_ARGUMENT – Handle is null.

  • NVCV_ERROR_INTERNAL – Internal error in the operator, invalid types passed in.

  • NVCV_SUCCESS – Operation executed successfully.

NVCVStatus pvaNciSubmit(
NVCVOperatorHandle handle,
cupvaStream_t stream,
NVCVTensorHandle const *inHandles,
NVCVTensorHandle *outHandles,
)#

Submits the NCI operator to a cuPVA stream.

Parameters:
  • handle[in] Handle to the operator.

    • Must not be NULL.

  • stream[in] Handle to a valid cuPVA stream.

  • inHandles[in] Pointer to array of input NVCVTensorHandle.

    • inHandles[0] is the FT2D tensor.

  • outHandles[out] Pointer to array of output NVCVTensorHandle.

    • outHandles[0] is the NciRx tensor.

    • outHandles[1] is the NciFinal tensor.

    • outHandles[2] is the NoiseEstimate tensor. This is only present if noiseEstimationEnabled is true.

Return values:
  • NVCV_ERROR_INVALID_ARGUMENT – Handle is null.

  • NVCV_ERROR_INTERNAL – Internal error in the operator, invalid types passed in.

  • NVCV_SUCCESS – Operation executed successfully.