關於MNN框架推理的時候,透過呼叫庫當中結構體的內容,可以切換選擇建立Session的具體配置。關於結構的描述見官方文件:
官方文件——建立Session
CPU是編譯的時候預設選擇的配置方式,透過文件可知在結構體:
MNN::ScheduleConfig
當中有可以選擇的2個成員,分別是:
type(配置方式)
numThread(設定併發數和執行緒數)
故我們在建立Session之前可以進行相應的配置,大體如下:
// 配置排程配置結構體,並手動設定CPU的併發數與執行緒數
MNN::ScheduleConfig barcodeConfig;
//barcodeConfig.type = MNN_FORWARD_VULKAN; // 使用GPU-VULKAN進行推理
//barcodeConfig.type = MNN_FORWARD_OPENCL; // 使用GPU-OPENCL進行推理
barcodeConfig.type = MNN_FORWARD_CPU; // 使用CPU進行推理
//barcodeConfig.numThread = 4; // 設定併發數和執行緒數
// 建立Session並傳遞配置
MNN::Session* barcodeSession = barcodeNet->createSession(barcodeConfig);
其中以下配置三選一,且在配置為CPU的時候可以進行配置併發數和執行緒數
//barcodeConfig.type = MNN_FORWARD_VULKAN; // 使用GPU-VULKAN進行推理
//barcodeConfig.type = MNN_FORWARD_OPENCL; // 使用GPU-OPENCL進行推理
barcodeConfig.type = MNN_FORWARD_CPU; // 使用CPU進行推理
如果選擇了OPENCL配置方式,還需要電腦本身支援OPENCL,具體配置方式參照如下連結:
Windows OPENCV配置