/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ #include <cassert> #include "tvm/runtime/micro/standalone/utvm_runtime.h" #include "utvm_graph_runtime.h" void* UTVMRuntimeCreate(const char* json, size_t json_len, void* module) { return new tvm::micro::MicroGraphRuntime( std::string(json, json + json_len), reinterpret_cast<tvm::micro::DSOModule*>(module)); } void UTVMRuntimeDestroy(void* handle) { delete reinterpret_cast<tvm::micro::MicroGraphRuntime*>(handle); } void UTVMRuntimeSetInput(void* handle, int index, void* tensor) { reinterpret_cast<tvm::micro::MicroGraphRuntime*>(handle)->SetInput( index, reinterpret_cast<DLTensor*>(tensor)); } void UTVMRuntimeRun(void* handle) { reinterpret_cast<tvm::micro::MicroGraphRuntime*>(handle)->Run(); } void UTVMRuntimeGetOutput(void* handle, int index, void* tensor) { reinterpret_cast<tvm::micro::MicroGraphRuntime*>(handle)->CopyOutputTo( index, reinterpret_cast<DLTensor*>(tensor)); } void* UTVMRuntimeDSOModuleCreate(const char* so, size_t so_len) { return new tvm::micro::DSOModule(std::string(so, so + so_len)); } void UTVMRuntimeDSOModuleDestroy(void* module) { delete reinterpret_cast<tvm::micro::DSOModule*>(module); }