提供通过 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 上提交问题。