megatron是什么,为什么要用
主要是在实现Yuan1.0大规模模型时,他们引用了Nvidia开发的megatron这个框架,因为这个框架就是为了分布式多卡环境而设计的,而要上大参数量的模型时要获得比较可观的速度就避免不了要上这个框架。此处github上的megatron官方介绍。
配置使用megatron的注意
要注意的是这个框架应用了Nvidia自己开发的Apex工具,于是要求你的其他工具都得给它配上套。比如这个apex又用到了cuda toolkit,意味着需要在本地配置cuda,这个cuda的版本要求跟你所配置的Pytorch中含有的cuda的版本一致,而非向下或向上兼容的关系
我的配置环境
多次尝试,走了弯路,最后运行的环境
- Nvidia RTX3060 12GB显存 驱动510 cuda11.3 (30系列显卡只支持cuda11.0及以上)
- 不安驱动,即不去下载deb版,否则自动安装。应下载runfile版,手动不勾选他自带的低版本驱动
- py内置的cuda11.3以外应再自行安装一个同版本的cuda,后者才有nvcc,以此才能运行Nvidia开发的一系列工具apex,megatron。后面运行起来的东西全部基于这一点同版本,合适硬件的cuda
Pytorch: torch==1.10.2 + cu113 torchvision==0.11.3 + cu113 torchaudio==0.10.2+cu113
- 另外ubuntu/pip应该及时换源清华或中科大,期间有很多包要下载(nltk,jieba,ninja,pybind…)