代码之家  ›  专栏  ›  技术社区  ›  Serge Rogatch

我可以把库达河放在池子里吗?

  •  0
  • Serge Rogatch  · 技术社区  · 7 年前

    创建和销毁CUDA流的操作有多轻?例如,对于CPU线程,这些操作很繁重,因此它们通常共用CPU线程。我也要去游泳吗?或者每次我需要它时创建一个流然后销毁它是否很快?

    2 回复  |  直到 7 年前
        1
  •  2
  •   Edward Z. Yang    6 年前

    英伟达的指导是,你应该把cuda流汇集起来。这是马嘴里的一句话, https://github.com/pytorch/pytorch/issues/9646 :

    在 火把大师。特别地:

    • 跟踪CUDA流需要原子引用计数
    • 摧毁cuda 流可以(很少)导致隐式设备同步
    • 这个 重新计算的问题已经被提出作为一个关注扩展流 例如,跟踪以允许向后流,并且 最好避免隐式设备同步,因为它经常导致 性能意外下降。

    对于静态框架,建议的最佳实践是 所需的溪流在前面,并在工作完成后将其摧毁。 此模式不立即适用于Pythorch,但 设备流池将实现类似的效果。

        2
  •  2
  •   talonmies    7 年前

    创建流是否快可能无关紧要。创建一次并重用它们总是比不断地创建和销毁它们快。

    分期偿还延迟是否真的很重要取决于您的应用程序,而不是其他任何东西。