IntraopNumThreads 接口

使能够更改线程池中用于通过 LearningModelSessionOptions 对 CPU 运算符进行运算符内执行的线程数。 默认情况下,WinML 会将该值设置为最大线程数,即用户 CPU 上的逻辑核心数。 如果将该值设置为高于 CPU 上逻辑核心数的值,可能会导致线程池效率低下,评估速度下降。

示例代码

void SetIntraOpNumThreads(LearningModel model) {
    // Create LearningModelSessionOptions
    auto options = LearningModelSessionOptions();
    auto nativeOptions = options.as<ILearningModelSessionOptionsNative>();
 
    // Set the number of intra op threads to half of logical cores.
    uint32_t desiredThreads = std::thread::hardware_concurrency() / 2;
    nativeOptions->SetIntraOpNumThreadsOverride(desiredThreads);
 
    // Create session
    LearningModelSession session = nullptr;
    WINML_EXPECT_NO_THROW(session = LearningModelSession(model, LearningModelDeviceKind::Cpu, options));
}

要求

要求
最低受支持的客户端 Windows 10,内部版本 17763
支持的最低服务器版本 具有桌面体验的 Windows Server 2019
页眉 windows.ai.machinelearning.native.h

注意

使用以下资源可获取有关 Windows ML 的帮助:

  • 若要提出或回答有关 Windows ML 的技术问题,请在 Stack Overflow 上使用 windows-machine-learning 标记。
  • 若要报告 bug,请在 GitHub 上提交问题。