getCapabilities_1_1 () generates (ErrorStatus status, Capabilities capabilities)
Gets the capabilities of a driver.
Note firstname.lastname@example.org::Capabilities provides performance information on relaxed calculations, email@example.com::Capabilities does not.
getSupportedOperations_1_1 (Model model) generates (ErrorStatus status, vec<bool> supportedOperations)
Gets the supported operations in a model.
getSupportedOperations indicates which operations of a model are fully supported by the vendor driver.If an operation may not be supported for any reason, getSupportedOperations must return false for that operation.
prepareModel_1_1 (Model model, ExecutionPreference preference, IPreparedModelCallback callback) generates (ErrorStatus status)
Creates a prepared model for execution.
prepareModel is used to make any necessary transformations or alternative representations to a model for execution, possiblly including transformations on the constant data, optimization on the model's graph, or compilation into the device's native binary format.The model itself is not changed.
The model is prepared asynchronously with respect to the caller.The prepareModel function must verify the inputs to the prepareModel function are correct.If there is an error, prepareModel must immediately invoke the callback with the appropriate ErrorStatus value and nullptr for the IPreparedModel, then return with the same ErrorStatus.If the inputs to the prepareModel function are valid and there is no error, prepareModel must launch an asynchronous task to prepare the model in the background, and immediately return from prepareModel with ErrorStatus::NONE.If the asynchronous task fails to launch, prepareModel must immediately invoke the callback with ErrorStatus::GENERAL_FAILURE and nullptr for the IPreparedModel, then return with ErrorStatus::GENERAL_FAILURE.
When the asynchronous task has finished preparing the model, it must immediately invoke the callback function provided as an input to prepareModel.If the model was prepared successfully, the callback object must be invoked with an error status of ErrorStatus::NONE and the produced IPreparedModel object.If an error occurred preparing the model, the callback object must be invoked with the appropriate ErrorStatus value and nullptr for the IPreparedModel.
The only information that may be unknown to the model at this stage is the shape of the tensors, which may only be known at execution time.As such, some driver services may return partially prepared models, where the prepared model can only be finished when it is paired with a set of inputs to the model.Note that the same prepared model object can be used with different shapes of inputs on different(possibly concurrent)executions.
Multiple threads can call prepareModel on the same model concurrently.