MindSpore 设置昇腾Ascend 910显存的默认大小,单卡可执行多任务处理

文章讨论了在使用昇腾Ascend910和MindSpore时,遇到的显存占用问题,尤其是在执行简单运算时。通过调整`max_device_memory`参数,可以将默认的30GB显存降低至1GB,实现更灵活的任务并行和资源管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

默认显存占用

最近在使用昇腾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

结果:
在这里插入图片描述
通过对这个配置进行配置,可以灵活设置任务所需显存的大小,并且可以根据显存消耗情况进行多任务的并行运行。

### Ascend 910 PyTorch 多卡训练配置与优化 对于在Ascend 910平台上利用PyTorch进行多GPU训练的任务,硬件资源的合理分配以及软件环境的有效设置至关重要。指定训练模式为预训练(pt),此过程可以在OpenI平台上的四块Ascend 910芯片上执行,每张卡拥有32GB显存,总计提供128GB显存空间用于模型参数存储和计算需求[^1]。 为了实现高效的分布式训练,在编写代码时需引入`torch.distributed.launch`模块来启动多个进程,每个进程负责一块GPU的工作负载。下面是一个简单的脚本示例: ```bash python -m torch.distributed.launch --nproc_per_node=4 train.py ``` 其中`train.py`文件内应包含如下初始化操作以支持多节点通信: ```python import os import torch from torch.nn.parallel import DistributedDataParallel as DDP def setup(rank, world_size): os.environ['MASTER_ADDR'] = 'localhost' os.environ['MASTER_PORT'] = '12355' # 初始化进程组 torch.distributed.init_process_group( backend='hccl', rank=rank, world_size=world_size) # 主函数入口处调用setup方法完成初始化工作 if __name__ == "__main__": local_rank = int(os.getenv('LOCAL_RANK')) setup(local_rank, 4) model = ... # 定义网络结构 ddp_model = DDP(model.to(f'npu:{local_rank}'), device_ids=[f'npu:{local_rank}']) ``` 关于批处理大小的选择,建议根据实际情况调整`per_device_train_batch_size` 和 `per_device_eval_batch_size` 参数,默认情况下这两个值都被设为8,意味着单个设备每次迭代会加载8条样本数据参与前向传播运算[^2]。然而当使用更多数量的GPU时,可以适当增加全局批量尺寸从而加速收敛速度并提高最终性能表现。 通过上述方式能够充分利用Ascend 910的强大算力优势来进行大规模深度学习模型的快速训练与评估。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值