acldvppPad

Applicability

Product

Supported

Atlas 350 Accelerator Card

Atlas A3 training product/Atlas A3 inference product

Atlas A2 training product/Atlas A2 inference product

Atlas 200I/500 A2 inference product

Atlas inference product

Atlas training product

Description

Description: fills boundaries of images.

Prototype

Each operator has two-phase API calls. First, acldvppPadGetWorkspaceSize is called to calculate the required workspace size based on the computation process. Then, acldvppPad is called to perform computation. The two-phase APIs are as follows:

  • First-phase API:
    1
    acldvppStatus acldvppPadGetWorkspaceSize(const aclTensor *self, const aclIntArray* padding, uint32_t paddingMode, const aclFloatArray* fill, aclTensor *out, uint64_t *workspaceSize, aclOpExecutor **executor)
    
  • Second-phase API:
    1
    acldvppStatus acldvppPad(void* workspace, uint64_t workspaceSize, aclOpExecutor* executor, aclrtStream stream)
    

acldvppPadGetWorkspaceSize

  • Parameters:
    • self: input tensor of the operator. Call aclCreateTensor to create data of the aclTensor type (stored on the device). The data type of the input tensor can be UINT8 or FLOAT, and the format can be NCHW or NHWC. Discontinuous tensors are not supported, in addition, N can be 1 or empty, and C can be 1 or 3 (1 indicates the input GRAY image, and 3 indicates the input RGB image).
    • padding: padding width of the borders. Call aclCreateIntArray to create data of the aclIntArray type. The length is 4, indicating the padding width in the left, top, right, and bottom directions, respectively. The width range is [0, 2048].
    • paddingMode: padding mode. The options are as follows:
      • 0: CONSTANT, indicating that a constant pad value will be used.
      • 1: EDGE, indicating repeating of the last element. For example, aaaaaa|a*****h|hhhhhhh, where * indicates any image element.
      • 2: REFLECT, indicating mirroring of boundary elements. The mirror does not include boundary elements themselves. For example, cb|abc****fgh|gf, where * indicates any image element.
      • 3: SYMMETRIC, indicating mirroring of boundary elements. The mirror includes boundary elements. For example, ba|abc****fgh|hg, where * indicates any image element.
    • fill: fill is an array whose length is 3 and is used to set the value to be filled in each channel. aclCreateFloatArray needs to be called to create data of the aclFloatArray type. fill is valid only when paddingMode is set to CONSTANT. If C is set to 1 (indicating a GRAY image), set fill[0]. If C is set to 3 (indicating an RGB image), set fill[0] for color red, fill[1] for color green, and fill[2] for color blue.
    • out: operator output tensor. Call aclCreateTensor to create data of the aclTensor type (stored on the device). The data type of the output tensor can be UINT8 or FLOAT, and the format can be NCHW or NHWC. Discontinuous tensors are not supported, the value of N can only be 1, and the value of C can be 1 or 3 (1 indicates a GRAY image and 3 indicates an RGB image). The values of dataType and Format must be the same as those of self. The sizes of the N axis and C axis in Shape must be the same as those of self, the sizes of the W and H axes in Shape must be the same as the width and height after padding.
    • workspaceSize: size of the workspace to be allocated on the device.
    • executor: operator executor, containing the operator computation process.
  • Returns

    The status code acldvppStatus is returned. For details, see acldvpp Return Codes.

acldvppPad

  • Parameters:
    • workspace: The aclrtMalloc API needs to be called to allocate the device memory. The memory size is workspaceSize. The memory address output by the aclrtMalloc API is passed here.
    • workspaceSize: The value must be the same as that obtained by calling acldvppPadGetWorkspaceSize.
    • executor: op executor, which contains the operator computation process and is the same as the executor of the acldvppPadGetWorkspaceSize API.
    • stream: stream for executing the task. You can reuse the created stream to save resources or call aclrtCreateStream to create a stream, and then pass the stream as an input parameter.
  • Returns

    The status code acldvppStatus is returned. For details, see acldvpp Return Codes.

Constraints

The supported image resolution ranges from 6 x 4 to 32768 x 32768.