1 // Copyright 2019 Google LLC 2 // 3 // This source code is licensed under the BSD-style license found in the 4 // LICENSE file in the root directory of this source tree. 5 6 #pragma once 7 8 #include <xnnpack.h> 9 10 #include <memory> 11 #include <vector> 12 13 namespace models { 14 15 typedef std::vector<std::unique_ptr<xnn_operator, decltype(&xnn_delete_operator)>> ExecutionPlan; 16 typedef ExecutionPlan (*ExecutionPlanFactory)(pthreadpool_t threadpool); 17 18 ExecutionPlan FP32MobileNetV1(pthreadpool_t threadpool); 19 ExecutionPlan FP32MobileNetV2(pthreadpool_t threadpool); 20 ExecutionPlan FP32MobileNetV3Large(pthreadpool_t threadpool); 21 ExecutionPlan FP32MobileNetV3Small(pthreadpool_t threadpool); 22 23 ExecutionPlan FP32SparseMobileNetV1(float sparsity, pthreadpool_t threadpool); 24 ExecutionPlan FP32SparseMobileNetV2(float sparsity, pthreadpool_t threadpool); 25 ExecutionPlan FP32SparseMobileNetV3Large(float sparsity, pthreadpool_t threadpool); 26 ExecutionPlan FP32SparseMobileNetV3Small(float sparsity, pthreadpool_t threadpool); 27 28 ExecutionPlan FP16MobileNetV1(pthreadpool_t threadpool); 29 ExecutionPlan FP16MobileNetV2(pthreadpool_t threadpool); 30 ExecutionPlan FP16MobileNetV3Large(pthreadpool_t threadpool); 31 ExecutionPlan FP16MobileNetV3Small(pthreadpool_t threadpool); 32 33 ExecutionPlan QS8MobileNetV1(pthreadpool_t threadpool); 34 ExecutionPlan QS8MobileNetV2(pthreadpool_t threadpool); 35 36 ExecutionPlan QU8MobileNetV1(pthreadpool_t threadpool); 37 38 } // namespace models 39