我想更多地了解这两个参数:intra 和 inter op parallelism threads
session_conf = tf.ConfigProto(
intra_op_parallelism_threads=1,
inter_op_parallelism_threads=1)
Run Code Online (Sandbox Code Playgroud)
我读了这篇文章,其中有一个很好的解释:TensorFlow: inter- and intra-op parallelism configuration
但我正在寻求确认并在下面提出新问题。我在 keras 2.0.9、tensorflow 1.3.0 中运行我的任务:
提前谢谢了
当两个参数都设置为 1 时,将有 1 个线程在 4 个内核中的 1 个上运行。它运行的核心可能会改变,但一次总是 1。
当并行运行某些东西时,总会在通信上的损失时间和通过并行化获得的时间之间进行权衡。根据使用的硬件和特定任务(如矩阵的大小),加速会发生变化。有时并行运行某些东西甚至比使用一个内核还要慢。
例如,在 cpu 上使用浮点数时(a + b) + c,a + (b + c)由于浮点精度,将不等于。使用多个并行线程意味着操作a + b + c不会总是以相同的顺序计算,导致每次运行的结果不同。然而,这些差异非常小,在大多数情况下不会影响整体结果。完全可重现的结果通常只用于调试。强制执行完全可重复性会大大减慢多线程的速度。
| 归档时间: |
|
| 查看次数: |
4233 次 |
| 最近记录: |