gpt4 book ai didi

c++ - 如何通过 CPU 中的一个图在 tensorflow 中执行多个 session

转载 作者:行者123 更新时间:2023-11-28 04:38:20 25 4
gpt4 key购买 nike

目前我正在构建一个 Tensorflow Graph,然后在 CPU 中用 C++ 执行 graph->getSession()->Run(input,model,output)

我想实现并发。我有哪些并行执行选项,以便我可以支持同时执行的多个请求。

我可以以多线程方式运行 session 吗?

通过并行执行多个 session ,处理时间是否会保持不变?示例:如果一个 session 需要 100 毫秒,那么同时运行 2 个 session 大约需要 100 毫秒。

注意:我想在 CPU 上运行它

最佳答案

首先需要注意的是,tensorflow默认会使用所有的cores进行处理。通过这个权威答案中讨论的内部和内部操作,您可以通过一些有限的方式对此进行控制:

Tensorflow: executing an ops with a specific core of a CPU

要注意的第二点是 session 是线程安全的。您可以从多个线程调用它。每次调用都会看到变量的一致时间点快照,就像它们在调用开始时一样,这是我曾经问过的一个问题:

How are variables shared between concurrent `session.run(...)` calls in tensorflow?

寓意:

如果您正在运行许多小的、顺序的操作,您可以在一个 session 中同时运行它们,并且如果您限制 tensorflow 对并行性的使用,则可能会获得一些改进的性能。如果您正在运行从分布式多核处理中获益更多的大型操作(例如大型矩阵乘法),您不需要自己处理并行性,默认情况下,tensorflow 已经分布在所有 CPU 内核上。

此外,如果您的图形依赖项适用于任何数量的并行化,tensorflow 也可以处理此问题。您可以设置分析以查看实际情况。

https://towardsdatascience.com/howto-profile-tensorflow-1a49fb18073d

关于c++ - 如何通过 CPU 中的一个图在 tensorflow 中执行多个 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50807106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com