Deep learning 在PyTorch型号的GPU之间调度作业
我正在尝试建立一个系统,根据请求训练深度模型。一个用户来到我的网站,点击一个按钮,培训过程开始 但是,我有两个GPU,我不确定在这两个GPU之间排队/处理作业的最佳方式:在至少一个GPU可用时启动作业,如果当前没有可用GPU,则排队作业。我想每个作业请求使用一个GPU 这是我可以和芹菜一起做的吗?我在过去使用过这个,但我不知道如何处理这个GPU相关的问题Deep learning 在PyTorch型号的GPU之间调度作业,deep-learning,pytorch,gpu,scheduling,Deep Learning,Pytorch,Gpu,Scheduling,我正在尝试建立一个系统,根据请求训练深度模型。一个用户来到我的网站,点击一个按钮,培训过程开始 但是,我有两个GPU,我不确定在这两个GPU之间排队/处理作业的最佳方式:在至少一个GPU可用时启动作业,如果当前没有可用GPU,则排队作业。我想每个作业请求使用一个GPU 这是我可以和芹菜一起做的吗?我在过去使用过这个,但我不知道如何处理这个GPU相关的问题 非常感谢 我对芹菜不太确定,因为我从来没有用过它,但从概念上讲,它似乎是合理的(而且这个问题是非常开放的): 创建只负责将任务分发到特定GP
非常感谢 我对芹菜不太确定,因为我从来没有用过它,但从概念上讲,它似乎是合理的(而且这个问题是非常开放的):
- 创建只负责将任务分发到特定GPU和接收请求的线程
- 如果任何GPU是空闲的,请立即将任务分配给它
- 如果两者都被占用,则完成任务可能需要估计时间(神经网络训练)
- 将其添加到GPU将在最短的近似时间内完成
5个任务),我会做的是:
- 停止GPU上当前正在进行的进程
- 对几批数据运行新流程,粗略估计完成此任务可能需要多长时间
- 要求它评估所有任务
现在,这取决于交通情况。如果它很大,并且会经常中断正在进行的进程,您应该简单地将新任务添加到任务量最少的GPU队列中(这里也需要一些启发式方法,您现在应该已经估计了可能的请求量,假设只有2个GPU,它可能不会很大)