mirror of
				https://github.com/PaddlePaddle/FastDeploy.git
				synced 2025-10-31 11:56:44 +08:00 
			
		
		
		
	 da94fc46cf
			
		
	
	da94fc46cf
	
	
	
		
			
			* add GPL lisence * add GPL-3.0 lisence * add GPL-3.0 lisence * add GPL-3.0 lisence * support yolov8 * add pybind for yolov8 * add yolov8 readme * add cpp benchmark * add cpu and gpu mem * public part split * add runtime mode * fixed bugs * add cpu_thread_nums * deal with comments * deal with comments * deal with comments * rm useless code * add FASTDEPLOY_DECL * add FASTDEPLOY_DECL * fixed for windows * mv rss to pss * mv rss to pss * Update utils.cc * use thread to collect mem * Add ResourceUsageMonitor * rm useless code * fixed bug * fixed typo * update ResourceUsageMonitor * fixed bug * fixed bug * add note for ResourceUsageMonitor * deal with comments * add macros * deal with comments * deal with comments * deal with comments * re-lint * rm pmap and use mem api * rm pmap and use mem api * add mem api * Add PrintBenchmarkInfo func * Add PrintBenchmarkInfo func * Add PrintBenchmarkInfo func * deal with comments * fixed enable_paddle_to_trt * add log for paddle_trt * support ppcls benchmark * use new trt option api * update benchmark info * simplify benchmark.cc * simplify benchmark.cc * deal with comments --------- Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com>
		
			
				
	
	
		
			100 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| // Copyright (c) 2023 PaddlePaddle Authors. All Rights Reserved.
 | |
| //
 | |
| // Licensed 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.
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include "fastdeploy/vision.h"
 | |
| 
 | |
| static bool CreateRuntimeOption(fastdeploy::RuntimeOption* option,
 | |
|                         int argc, char* argv[], bool remove_flags) {
 | |
|   google::ParseCommandLineFlags(&argc, &argv, remove_flags);
 | |
|   if (FLAGS_profile_mode == "runtime") {
 | |
|     option->EnableProfiling(FLAGS_include_h2d_d2h, FLAGS_repeat, FLAGS_warmup);
 | |
|   }
 | |
|   if (FLAGS_device == "gpu") {
 | |
|     option->UseGpu(FLAGS_device_id);
 | |
|     if (FLAGS_backend == "ort") {
 | |
|       option->UseOrtBackend();
 | |
|     } else if (FLAGS_backend == "paddle") {
 | |
|       option->UsePaddleInferBackend();
 | |
|     } else if (FLAGS_backend == "trt" || FLAGS_backend == "paddle_trt") {
 | |
|       option->UseTrtBackend();
 | |
|       if (FLAGS_backend == "paddle_trt") {
 | |
|         option->UsePaddleInferBackend();
 | |
|         option->paddle_infer_option.enable_trt = true;
 | |
|       }
 | |
|       if (FLAGS_use_fp16) {
 | |
|         option->trt_option.enable_fp16 = true;
 | |
|       }
 | |
|     } else if (FLAGS_backend == "default") {
 | |
|       return true;
 | |
|     } else {
 | |
|       std::cout << "While inference with GPU, only support "
 | |
|                    "default/ort/paddle/trt/paddle_trt now, "
 | |
|                 << FLAGS_backend << " is not supported." << std::endl;
 | |
|       PrintUsage();
 | |
|       return false;
 | |
|     }
 | |
|   } else if (FLAGS_device == "cpu") {
 | |
|     option->SetCpuThreadNum(FLAGS_cpu_thread_nums);
 | |
|     if (FLAGS_backend == "ort") {
 | |
|       option->UseOrtBackend();
 | |
|     } else if (FLAGS_backend == "ov") {
 | |
|       option->UseOpenVINOBackend();
 | |
|     } else if (FLAGS_backend == "paddle") {
 | |
|       option->UsePaddleInferBackend();
 | |
|     } else if (FLAGS_backend == "lite") {
 | |
|       option->UsePaddleLiteBackend();
 | |
|       if (FLAGS_use_fp16) {
 | |
|         option->paddle_lite_option.enable_fp16 = true;
 | |
|       }
 | |
|     } else if (FLAGS_backend == "default") {
 | |
|       return true;
 | |
|     } else {
 | |
|       std::cout << "While inference with CPU, only support "
 | |
|                    "default/ort/ov/paddle/lite now, "
 | |
|                 << FLAGS_backend << " is not supported." << std::endl;
 | |
|       PrintUsage();
 | |
|       return false;
 | |
|     }
 | |
|   } else if (FLAGS_device == "xpu") {
 | |
|     option->UseKunlunXin(FLAGS_device_id);
 | |
|     if (FLAGS_backend == "ort") {
 | |
|       option->UseOrtBackend();
 | |
|     } else if (FLAGS_backend == "paddle") {
 | |
|       option->UsePaddleInferBackend();
 | |
|     } else if (FLAGS_backend == "lite") {
 | |
|       option->UsePaddleLiteBackend();
 | |
|       if (FLAGS_use_fp16) {
 | |
|         option->paddle_lite_option.enable_fp16 = true;
 | |
|       }
 | |
|     } else if (FLAGS_backend == "default") {
 | |
|       return true;
 | |
|     } else {
 | |
|       std::cout << "While inference with XPU, only support "
 | |
|                    "default/ort/paddle/lite now, "
 | |
|                 << FLAGS_backend << " is not supported." << std::endl;
 | |
|       PrintUsage();
 | |
|       return false;
 | |
|     }
 | |
|   } else {
 | |
|     std::cerr << "Only support device CPU/GPU/XPU now, " << FLAGS_device
 | |
|               << " is not supported." << std::endl;
 | |
|     PrintUsage();
 | |
|     return false;
 | |
|   }
 | |
|   PrintBenchmarkInfo();
 | |
|   return true;
 | |
| }
 |