IntraopNumThreads 接口

提供通过 LearningModelSessionOptions 更改 CPU 运算符的 Intra 运算符执行的线程池中使用的线程数的功能。 默认情况下,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 上提交问题。