Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graph Tensorflow:使用CPU的特定核心执行ops_Graph_Cpu_Device_Tensorflow - Fatal编程技术网

Graph Tensorflow:使用CPU的特定核心执行ops

Graph Tensorflow:使用CPU的特定核心执行ops,graph,cpu,device,tensorflow,Graph,Cpu,Device,Tensorflow,目前可以为特定的操作指定要与tf.device(…)函数一起使用的CPU或GPU,但是您是否可以指定CPU的内核?目前没有用于将操作固定到特定内核的API,尽管这会是一个很好的选择。您可以通过创建多个CPU设备来近似此功能,每个CPU设备都有一个单线程线程池,但这并不能保证保持核心固定解决方案的局部性: with tf.device("/cpu:4"): # ... with tf.device("/cpu:7"): # ... with tf.device("/cpu:0"):

目前可以为特定的操作指定要与tf.device(…)函数一起使用的CPU或GPU,但是您是否可以指定CPU的内核?

目前没有用于将操作固定到特定内核的API,尽管这会是一个很好的选择。您可以通过创建多个CPU设备来近似此功能,每个CPU设备都有一个单线程线程池,但这并不能保证保持核心固定解决方案的局部性:

with tf.device("/cpu:4"):
  # ...

with tf.device("/cpu:7"):
  # ...

with tf.device("/cpu:0"):
  # ...

config = tf.ConfigProto(device_count={"CPU": 8},
                        inter_op_parallelism_threads=1,
                        intra_op_parallelism_threads=1)
sess = tf.Session(config=config)

哇,仅仅通过一个简单的测试,速度就提高了3倍。非常感谢你!编辑:调查后,3倍的速度增益仅是由于按照您的答案中所述设置配置造成的。我使用RNN是有意义的。我会调查的!顺便说一句,在上面的例子中,我认为您需要将inter_op_parallelism_线程设置为更高的数值,否则它将按顺序运行所有内容,下面是一个测试,我只需要一个线程。但是,config=tf.ConfigProto(device_count={“CPU”:1},inter_op_parallelism_threads=1,intra_op_parallelism_threads=1)生成8个线程(每个核心一个线程,我有8个核心)。如何将线程数减少到1?