Operator function: Performs multiplication computation between tensors.
Formula:
[object Object]and[object Object]implement the same function in different ways. Select a proper operator based on your requirements.[object Object]: An output tensor object needs to be created to store the computation result.[object Object]: No output tensor object needs to be created, and the computation result is stored in the memory of the input tensor.
Each operator has calls. First,
[object Object]or[object Object]is called to obtain the workspace size required for computation and the executor that contains the operator computation process. Then,[object Object]or[object Object]is called to perform computation.[object Object][object Object][object Object][object Object]
Parameters:
[object Object](aclTensor*, computation input): input[object Object]in the formula. The data type of[object Object]must meet the data type deduction rules with[object Object](see ). The shape of[object Object]must meet the with[object Object]. are supported. The can be ND.- [object Object]Atlas A2 training products/Atlas A2 inference products[object Object] and [object Object]Atlas A3 training products/Atlas A3 inference products[object Object]: The data type can be FLOAT, FLOAT16, DOUBLE, INT32, INT64, INT16, INT8, UINT8, BOOL, COMPLEX128, COMPLEX64, or BFLOAT16.
- [object Object]Atlas inference products[object Object], [object Object]Atlas training products[object Object], and [object Object]Atlas 200I/500 A2 inference products[object Object]: The data type can be FLOAT, FLOAT16, DOUBLE, INT32, INT64, INT16, INT8, UINT8, BOOL, COMPLEX128, or COMPLEX64.
[object Object](aclTensor *, computation input): input[object Object]in the formula. The data type of[object Object]must meet the data type deduction rules with[object Object](see ). The shape of[object Object]must meet the with[object Object]. are supported. The can be ND.- [object Object]Atlas A2 training products/Atlas A2 inference products[object Object] and [object Object]Atlas A3 training products/Atlas A3 inference products[object Object]: The data type can be FLOAT, FLOAT16, DOUBLE, INT32, INT64, INT16, INT8, UINT8, BOOL, COMPLEX128, COMPLEX64, or BFLOAT16.
- [object Object]Atlas inference products[object Object], [object Object]Atlas training products[object Object], and [object Object]Atlas 200I/500 A2 inference products[object Object]: The data type can be FLOAT, FLOAT16, DOUBLE, INT32, INT64, INT16, INT8, UINT8, BOOL, COMPLEX128, or COMPLEX64.
[object Object](aclTensor*, computation output): output[object Object]in the formula. The data type must be convertible from that after deduction between[object Object]and[object Object]. The shape must be the same as that of[object Object]and[object Object]after broadcasting. are supported. The can be ND.- [object Object]Atlas A2 training products/Atlas A2 inference products[object Object] and [object Object]Atlas A3 training products/Atlas A3 inference products[object Object]: The data type can be FLOAT, FLOAT16, DOUBLE, INT32, INT64, INT16, INT8, UINT8, BOOL, COMPLEX128, COMPLEX64, or BFLOAT16.
- [object Object]Atlas inference products[object Object], [object Object]Atlas training products[object Object], and [object Object]Atlas 200I/500 A2 inference products[object Object]: The data type can be FLOAT, FLOAT16, DOUBLE, INT32, INT64, INT16, INT8, UINT8, BOOL, COMPLEX128, or COMPLEX64.
[object Object](uint64_t*, output): size of the workspace to be allocated on the device.[object Object](aclOpExecutor**, output): operator executor, containing the operator computation process.
Returns:
Parameters:
[object Object](void*, input): address of the workspace to be allocated on the device.[object Object](uint64_t, input): size of the workspace to be allocated on the device, which is obtained by calling the first-phase API[object Object].[object Object](aclOpExecutor *, input): operator executor, containing the operator computation process.[object Object](aclrtStream, input): stream for executing the task.
Returns:
Parameters:
[object Object](aclTensor*, computation input | computation output): input[object Object]and output[object Object]in the formula. The data type must meet the data type deduction rules with[object Object](see ). In addition, the data type after deduction can be converted to the data type of[object Object]. The shapes of[object Object]and[object Object]must meet the , and the shape after broadcasting must be the same as the shape of[object Object]. are supported. The can be ND.- [object Object]Atlas A2 training products/Atlas A2 inference products[object Object] and [object Object]Atlas A3 training products/Atlas A3 inference products[object Object]: The data type can be FLOAT, FLOAT16, DOUBLE, INT32, INT64, INT16, INT8, UINT8, BOOL, COMPLEX128, COMPLEX64, or BFLOAT16.
- [object Object]Atlas inference products[object Object], [object Object]Atlas training products[object Object], and [object Object]Atlas 200I/500 A2 inference products[object Object]: The data type can be FLOAT, FLOAT16, DOUBLE, INT32, INT64, INT16, INT8, UINT8, BOOL, COMPLEX128, or COMPLEX64.
[object Object](aclTensor *, computation input): input[object Object]in the formula. The data type must meet the data type deduction rules with[object Object](see ). The shape must meet the with[object Object]. are supported. The can be ND.- [object Object]Atlas A2 training products/Atlas A2 inference products[object Object] and [object Object]Atlas A3 training products/Atlas A3 inference products[object Object]: The data type can be FLOAT, FLOAT16, DOUBLE, INT32, INT64, INT16, INT8, UINT8, BOOL, COMPLEX128, COMPLEX64, or BFLOAT16.
- [object Object]Atlas inference products[object Object], [object Object]Atlas training products[object Object], and [object Object]Atlas 200I/500 A2 inference products[object Object]: The data type can be FLOAT, FLOAT16, DOUBLE, INT32, INT64, INT16, INT8, UINT8, BOOL, COMPLEX128, or COMPLEX64.
[object Object](uint64_t*, output): size of the workspace to be allocated on the device.[object Object](aclOpExecutor**, output): operator executor, containing the operator computation process.
Returns:
Parameters:
[object Object](void*, input): address of the workspace to be allocated on the device.[object Object](uint64_t, input): size of the workspace to be allocated on the device, which is obtained by calling the first-phase API[object Object].[object Object](aclOpExecutor*, input): operator executor, containing the operator computation process.[object Object](aclrtStream, input): stream for executing the task.
Returns:
- Deterministic computing:
[object Object]defaults to a deterministic implementation.For the scenario where the data type of
[object Object]is INT8 and that of[object Object]is INT32: The cast operator has a precision issue when converting the INT32 type to the INT8 type (see . In this scenario, the output result precision cannot be ensured.
The following example is for reference only. For details, see .
aclnnMul sample code:
aclnnInplaceMul sample code: