我想让 2 个评估在我创建的 2 个不同的设备(和 2 个不同的会话)上并行运行,为此我正在使用 EvaluateAsync()
代码:
std::cout<<" Starting Evaluate " << std::endl;
auto start = high_resolution_clock::now();
auto eval_1= session.EvaluateAsync(binding, L""();
auto eval_2 = session_2.EvaluateAsync( binding_2, L"" )
auto stop = high_resolution_clock::now();
auto duration = duration_cast<microseconds>( stop - start );
std::cout << " Ending Evaluate " << duration.count() << std::endl;
预期行为:
只有一个评估调用(假设只有 auto eval_1= session.EvaluateAsync(binding, L""(); 在记录的时间之间),我知道持续时间是 10 毫秒。
如果 EvaluateAsyn 是真正异步的,我希望有 2 次调用,那么时间应该是 2 次调用中的最大值,但是,它需要两倍的时间,即 20 毫秒来执行。