怎样做模块化?
- 最近看Nvidia Megatron的代码,感觉很简洁、模块化,像tensor并行、流水线并行几个文件就搞定了,看起来很爽
- 但模块化的一个问题是,本模块简洁,但需要其他模块提供很多函数支撑。比如流水线并行。
需要在组网的时候按照流水线的思路分好多个阶段,设置好input tensor,导致组网里很多交叉的逻辑
- 之前在Baidu就不同,其主推的自动并行,组网简单,标记简单,试图把多种并行策略抽象统一,给用户提供最简单的组网接口,但会导致这个抽象模块极其庞大复杂,不像Megatron看着几个文件搞定了
所以怎么做模块化呢???