mirror of
				https://github.com/PaddlePaddle/FastDeploy.git
				synced 2025-10-31 03:46:40 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			53 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright (c) 2022 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
 | |
| 
 | |
| namespace fastdeploy {
 | |
| namespace rknpu2 {
 | |
| typedef enum _rknpu2_cpu_name {
 | |
|   RK356X = 0, /* run on RK356X. */
 | |
|   RK3588 = 1, /* default,run on RK3588. */
 | |
|   UNDEFINED,
 | |
| } CpuName;
 | |
| 
 | |
| /*! RKNPU2 core mask for mobile device. */
 | |
| typedef enum _rknpu2_core_mask {
 | |
|   RKNN_NPU_CORE_AUTO = 0,  //< default, run on NPU core randomly.
 | |
|   RKNN_NPU_CORE_0 = 1,     //< run on NPU core 0.
 | |
|   RKNN_NPU_CORE_1 = 2,     //< run on NPU core 1.
 | |
|   RKNN_NPU_CORE_2 = 4,     //< run on NPU core 2.
 | |
|   RKNN_NPU_CORE_0_1 =
 | |
|       RKNN_NPU_CORE_0 | RKNN_NPU_CORE_1,  //< run on NPU core 1 and core 2.
 | |
|   RKNN_NPU_CORE_0_1_2 =
 | |
|       RKNN_NPU_CORE_0_1 | RKNN_NPU_CORE_2,  //< run on NPU core 1 and core 2.
 | |
|   RKNN_NPU_CORE_UNDEFINED,
 | |
| } CoreMask;
 | |
| }  // namespace rknpu2
 | |
| 
 | |
| struct RKNPU2BackendOption {
 | |
|   rknpu2::CpuName cpu_name = rknpu2::CpuName::RK3588;
 | |
| 
 | |
|   // The specification of NPU core setting.It has the following choices :
 | |
|   // RKNN_NPU_CORE_AUTO : Referring to automatic mode, meaning that it will
 | |
|   // select the idle core inside the NPU.
 | |
|   // RKNN_NPU_CORE_0 : Running on the NPU0 core
 | |
|   // RKNN_NPU_CORE_1: Runing on the NPU1 core
 | |
|   // RKNN_NPU_CORE_2: Runing on the NPU2 core
 | |
|   // RKNN_NPU_CORE_0_1: Running on both NPU0 and NPU1 core simultaneously.
 | |
|   // RKNN_NPU_CORE_0_1_2: Running on both NPU0, NPU1 and NPU2 simultaneously.
 | |
|   rknpu2::CoreMask core_mask = rknpu2::CoreMask::RKNN_NPU_CORE_AUTO;
 | |
| };
 | |
| 
 | |
| }  // namespace fastdeploy
 | 
