#pragma once #include namespace fsdk { /** * @brief DeviceClass specifies which device/instruction set * to use for cnn inference. * */ enum class DeviceClass : int32_t { CPU = 0, GPU = 1, CPU_ARM = 2, CPU_AVX2, // CPU with AVX2/SSE4.2 ISA support GPU_INT8, // GPU with INT8 inference. Only Pascal+ CPU_ARM_INT8, GPU_MOBILE, // GPU for mobiles NPU_ASCEND, Invalid = -1 }; /** * @brief LaunchOptions struct configures inference options on * per-estimator/detector basis, giving user fine grained * control over cpu/gpu utilisation. * */ struct LaunchOptions { DeviceClass deviceClass = DeviceClass::CPU; // Cpu options bool runConcurrently = true; //External device options (GPU/NPU etc.) //Use defaultGpuDevice from runtime configuration static constexpr int32_t defaultDeviceId = -1; int32_t deviceId = defaultDeviceId; }; }