即使有了
inter_op_parallelism_threads = 1
intra_op_parallelism_threads = 1
值设置,TensorFlow 1.5进程不是单线程的。为什么?有没有办法完全禁用意外的线程产生?
答案 0 :(得分:0)
首先,TensorFlow是一个多级软件堆栈,每一层都试图变得聪明,并引入了一些自己的工作线程:
接下来,有些线程源自TensorFlow管理内部计算作业的方式:
因此,即使将所有选项设置为1,TensorFlow也不能是单线程的。也许,此设计旨在减少异步作业的延迟。然而,存在一个缺点:多核计算库(例如线性代数)最好使用静态对称核心线程映射来执行高速缓存密集型操作。由TensorFlow产生的悬空回调线程将一直扰乱这种对称性。