aclmdlLoadFromMemWithMem

Applicable Products

Product

Supported

Ascend 950PR / Ascend 950DT

Atlas A3 training products / Atlas A3 inference products

Atlas A2 training products / Atlas A2 inference products

Atlas 200I/500 A2 inference products

Atlas inference products

Atlas training products

Function Usage

Loads OM model file data from memory. The model workspace is managed by the user.

For details about how to obtain the OM model file, see "Command-Line Options > Basic Options > General Options > --mode" in the Ascend Tensor Compiler (ATC).

Prototype

1
aclError aclmdlLoadFromMemWithMem(const void *model, size_t modelSize, uint32_t *modelId, void *workPtr, size_t workSize, void *weightPtr, size_t weightSize)

Parameters

Parameter

Input/Output

Description

model

Input

Pointer to the memory address for storing model data.

modelSize

Input

Model size in bytes.

modelId

Output

Pointer to the model ID.

Returns the model ID after the model is successfully loaded. The model ID is used for model identification in subsequent operations.

workPtr

Input

Pointer to the address of the workspace (for storing temporary data during model execution) required by the model on the device. The workspace is managed by the user and cannot be freed during model execution.

If a null pointer is passed to workPtr, the workspace is managed by the system.

In the event where the memory is managed by the user, if multiple models are executed in serial, the models can share a workspace. However, you need to guarantee the serial execution sequence of the models and the workspace size (the same as the total size of the workspaces needed by all the models). Refer to the following description to ensure serial execution: Lock the model during execution to ensure that tasks are executed in serial.

workSize

Input

Workspace size required for model execution, in bytes. Invalid when workPtr is a null pointer.

weightPtr

Input

Pointer to the address of the model weight memory (for storing weight data) on the device. The memory is managed by the user and cannot be freed during model execution.

If a null pointer is passed, the memory is managed by the system.

In the multithreaded scenario where the weight memory is managed by the user, if a model is loaded once in each thread, weightPtr can be shared because the weight memory is read-only at inference time. Note that weightPtr cannot be freed when the sharing is in progress.

weightSize

Input

Weight memory size required for model execution, in bytes. Invalid when weightPtr is a null pointer.

Returns

0 on success; else, failure. For details, see aclError.

Restrictions

In Ascend EP form, allocate memory on the host for the model parameter.

In Ascend RC form, allocate memory on the device for the model parameter.

In Open Ctrl CPU form, allocate memory on the device for the model parameter.

Reference

The aclmdlSetConfigOpt and aclmdlLoadWithConfig APIs are provided for model loading. The caller needs to set the attributes in the configuration object passed to the API call to decide how the model will be loaded and who will manage the memory.