我已经编程了一些使用TensorFlow的C API(仅CPU(进行推理的代码。它在一个群集节点上运行,我可以访问24个CPU和1 GPU。我不使用GPU,因为我需要在以后完成任务。
每次我调用来自另一个程序(OpenFOAM(TensorFlow的TensorFlow代码时,似乎都在所有CPU上运行。但是,我没有做任何事情来导致这种行为。现在我想知道tensorflow默认情况下是否进行并行化?
问候,预先感谢!
我不确定您如何使用TensorFlow。但是,典型的张量训练具有输入管道,可以将其视为ETL过程。以下是涉及的主要活动:
提取:从持久存储中读取数据
转换:使用CPU内核来解析和对数据进行预处理操作,例如图像减压,数据增强变换(例如随机作物,翻转和颜色扭曲(,改组和批处理。
load :将转换的数据加载到加速器设备上(例如,执行机器学习模型的GPU(S(或TPU(S(或TPU(S((。
CPU通常在数据转换过程中使用。在转换过程中,预处理数据输入元素。为了提高预处理的性能,默认情况下它在多个CPU核心上并行。
TensorFlow提供了TF.DATA API,它提供tf.data.dataset.map变换。为了控制并行性,地图提供了NUM_PARALEL_CALLS参数。
从这里阅读更多信息:https://www.tensorflow.org/guide/performance/datasets