首先,我想仅在具有CPU节点的集群上运行tensorflow。因此,没有安装CUDA
库,而仅安装了CPU-only
版本的tensorflow
。我对正确的设置有很多疑问。让我们从最基本的情况开始:
1。具有多个CPU内核的节点
从此answer开始,它建议在device_count = {'GPU': 0}
中设置tf.ConfigProto
,以强制代码仅在CPU上运行。由于我的平台具有GPU,因此我认为此步骤对我而言无效。 但是,我很好奇在这种设置下如何分配CPU资源。代码是否只能在1个CPU内核上运行?
所以我转向yaroslavvb's example,但仍然遇到一些问题:
我可以避免使用更多的语句with tf.device("/cpu:0"):
等吗?
device_count={"CPU": 8}
和inter_op_parallelism_threads=3, intra_op_parallelism_threads=1
之间是什么关系?在answer from mrry中,我认为inter
通过在我的图形中的独立块上工作的线程(例如,多个独立的矩阵运算)控制线程的分布,而intra
在“内部可并行”任务上工作(例如矩阵乘法)。我对么?回到yaroslavvb's example,我认为任务已分配给4个CPU内核,{"CPU": 8}
请求了8个内核。如果我是正确的,为什么要提出超出要求的要求?
如何在不使用with tf.device()
语句的情况下在每个CPU内核之间分配任务?
然后我们进一步:
2。具有多个CPU内核的多个节点
此Senario是否可与运行的多个GPU相提并论?