问题一:EPL支持哪些并行化策略,并给出数据并行的例子?
EPL支持哪些并行化策略,并给出数据并行的例子?
参考回答:
EPL支持数据并行、流水并行、算子拆分并行以及这些策略的组合和嵌套。数据并行的例子是,用户通过指定并行策略,每个模型副本使用一张卡计算,如果用户申请了8张卡,则形成一个并行度为8的数据并行任务。
关于本问题的更多问答可点击原文查看:
https://developer.aliyun.com/ask/674991
问题二:在EPL中,如何通过strategy annotation实现流水并行,并设定pipeline的micro batch数量?
在EPL中,如何通过strategy annotation实现流水并行,并设定pipeline的micro batch数量?
参考回答:
在EPL中,用户可以通过pipeline.num_micro_batch参数来设定pipeline的micro batch数量,并通过strategy annotation将模型划分为多个TaskGraph来实现流水并行。例如,模型被切分为"stage0"和"stage1",这两个TaskGraph组成一个模型副本,共需2张GPU卡。如果用户申请了8张卡,EPL会自动在pipeline外嵌套一层并行度为4的数据并行。
关于本问题的更多问答可点击原文查看:
https://developer.aliyun.com/ask/674993
问题三:EPL提供了哪些显存优化技术,并简述重算(Gradient Checkpoint)的原理?
EPL提供了哪些显存优化技术,并简述重算(Gradient Checkpoint)的原理?
参考回答:
EPL提供了重算(Gradient Checkpoint)、ZeRO、显存优化的AMP和Offload等显存优化技术。重算(Gradient Checkpoint)的原理是在前向传播过程中保留部分activation,在反向传播中重算被释放的activation,用时间换空间,以节省显存。
关于本问题的更多问答可点击原文查看:
https://developer.aliyun.com/ask/674994
问题四:在数据并行的场景下,ZeRO技术是如何帮助减少单卡显存占用的?
在数据并行的场景下,ZeRO技术是如何帮助减少单卡显存占用的?
参考回答:
在数据并行的场景下,ZeRO技术通过将optimizer state和gradient分片存储在不同的卡上,从而减少了单卡的persistent memory占用,有效解决了模型变大时容易超出单卡显存限制的问题。
关于本问题的更多问答可点击原文查看:
https://developer.aliyun.com/ask/674995
问题五:EPL的显存优化AMP版本相比常规AMP有哪些改进?
EPL的显存优化AMP版本相比常规AMP有哪些改进?
参考回答:
EPL的显存优化AMP版本相比常规AMP,改进了FP16 weight buffer的管理方式。在常规AMP中,需要维护一个FP16的weight buffer,对于参数量大的模型开销较大。而EPL的显存优化AMP版本则在需要时才进行cast,从而节约了显存。
关于本问题的更多问答可点击原文查看: