默认显存占用
最近在使用昇腾Ascend 910和MindSpore进行训练和推理时,遇到了一个非常有趣的现象,就是无论是进行模型的训练还是推理,都会占用大约30GB的显存。即使只是进行一个简单的Tensor加减法的运算,也需要消耗30GB的显存,这看起来很难受。只做一个简单的Tensor逻辑运算,却占用了30GB的显存。最恶心的是,我花了大价钱从xxx地方购买到的国产化AI加速卡,难道只能同时执行一个任务?(小模型)
import mindspore as ms x = ms.Tensor([10,20]) y = ms.Tensor([40,50]) b = x +y
讯享网
显存占用情况:

讯享网

解决方法
参考:https://www.mindspore.cn/docs/zh-CN/r2.2/index.html
mindspore的context有个有个参数可以配置显存的默认占用情况:

max_device_memory, 用于设置显存大小,它的默认值是 30GB
由于30GB的默认值,导致了上面的问题
我们只需要配置这个参数就可以限制当前任务的显存占用:
讯享网import mindspore as ms ms.set_context(max_device_memory="1GB") x = ms.Tensor([10,20]) y = ms.Tensor([40,50]) b = x +y
结果:

通过对这个配置进行配置,可以灵活设置任务所需显存的大小,并且可以根据显存消耗情况进行多任务的并行运行。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/121885.html