blob: 7306f593e671b7fedf0252839028df6f447b22b4 [file] [log] [blame]
// Copyright 2019 Google LLC
//
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree.
#pragma once
#include <xnnpack.h>
#include <memory>
#include <vector>
namespace models {
typedef std::vector<std::unique_ptr<xnn_operator, decltype(&xnn_delete_operator)>> ExecutionPlan;
typedef ExecutionPlan (*ExecutionPlanFactory)(pthreadpool_t threadpool);
ExecutionPlan FP32MobileNetV1(pthreadpool_t threadpool);
ExecutionPlan FP32MobileNetV2(pthreadpool_t threadpool);
ExecutionPlan FP32MobileNetV3Large(pthreadpool_t threadpool);
ExecutionPlan FP32MobileNetV3Small(pthreadpool_t threadpool);
ExecutionPlan FP32SparseMobileNetV1(float sparsity, pthreadpool_t threadpool);
ExecutionPlan FP32SparseMobileNetV2(float sparsity, pthreadpool_t threadpool);
ExecutionPlan FP32SparseMobileNetV3Large(float sparsity, pthreadpool_t threadpool);
ExecutionPlan FP32SparseMobileNetV3Small(float sparsity, pthreadpool_t threadpool);
ExecutionPlan FP16MobileNetV1(pthreadpool_t threadpool);
ExecutionPlan FP16MobileNetV2(pthreadpool_t threadpool);
ExecutionPlan FP16MobileNetV3Large(pthreadpool_t threadpool);
ExecutionPlan FP16MobileNetV3Small(pthreadpool_t threadpool);
ExecutionPlan QS8MobileNetV1(pthreadpool_t threadpool);
ExecutionPlan QS8MobileNetV2(pthreadpool_t threadpool);
ExecutionPlan QU8MobileNetV1(pthreadpool_t threadpool);
} // namespace models