当前位置: 首页 > news >正文

【技巧】PyTorch限制GPU显存的可使用上限

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn]

        从 PyTorch 1.4 版本开始,引入了一个新的功能 torch.cuda.set_per_process_memory_fraction(fraction, device),这个功能允许用户为特定的 GPU 设备设置进程可使用的显存上限比例。

        测试代码:

torch.cuda.empty_cache()# 设置进程可使用的GPU显存最大比例为50%
torch.cuda.set_per_process_memory_fraction(0.5, device=0)# 计算总内存
total_memory = torch.cuda.get_device_properties(0).total_memory
print("实际总内存:", round(total_memory / (1024 * 1024), 1), "MB")# 尝试分配大量显存的操作
try:# 使用10%的显存:tmp_tensor = torch.empty(int(total_memory * 0.1), dtype=torch.int8, device='cuda:0')print("分配的内存:", round(torch.cuda.memory_allocated(0) / (1024 * 1024), 1), "MB")print("保留的内存:", round(torch.cuda.memory_reserved(0) / (1024 * 1024), 1), "MB")# 清空显存del tmp_tensortorch.cuda.empty_cache()# 使用50%的显存:torch.empty(int(total_memory * 0.5), dtype=torch.int8, device='cuda:0')
except RuntimeError as e:print("Error allocating tensor:", e)# 打印当前GPU的显存使用情况
print("分配的内存:", torch.cuda.memory_allocated(0) / (1024 * 1024), "MB")
print("保留的内存:", torch.cuda.memory_reserved(0) / (1024 * 1024), "MB")

  • 已分配显存:通过torch.cuda.memory_allocated(device)查询,它返回已经直接分配给张量的显存总量。这部分显存是当前正在被Tensor对象使用的。

  • 保留(预留)显存:通过torch.cuda.memory_reserved(device)查询,它包括了已分配显存以及一部分由PyTorch的CUDA内存分配器为了提高分配效率和减少CUDA操作所需时间而预留的显存。这部分预留的显存不直接用于存储Tensor对象的数据,但可以被视为快速响应未来显存分配请求的“缓冲区”。
http://www.lryc.cn/news/328813.html

相关文章:

  • 深度理解文件操作
  • 【搜索引擎2】实现API方式调用ElasticSearch8接口
  • 配置小程序的服务器域名
  • 政安晨:【深度学习神经网络基础】(一)—— 逐本溯源
  • 技巧 Win10电脑打开SMB协议共享文件,手机端查看
  • java实现MP4视频压缩
  • 云电脑安全性怎么样?企业如何选择安全的云电脑
  • 【python】pygame游戏框架
  • 计算机OSI7层协议模型
  • 书生·浦语大模型实战营之全链路开源体系
  • /.git/config文件目录
  • MySQL 8.0 新特性之不可见主键
  • kubernetes-networkpolicies网络策略问题
  • wps没保存关闭了恢复数据教程
  • Android9.0以后不允许HTTP访问的解决方案
  • nvm安装以后,node -v npm 等命令提示不是内部或外部命令
  • SBA架构5G核心网
  • 上位机图像处理和嵌入式模块部署(qmacvisual图像拼接)
  • 关于对postcss安装和使用比较详细
  • uniApp使用XR-Frame创建3D场景(4)金属度和粗糙度
  • 使用itext-core生成PDF
  • 接口自动化框架搭建(四):pytest的使用
  • 蓝桥杯算法基础(34)深度优先搜索DFS(数独游戏)(部分和)(水洼数目)(八皇后问题)(素数环)(困难的串)
  • 蓝桥杯备考随手记: Math 类中常用方法
  • 外包干了4年,技术退步明显。。。。
  • 亚远景科技-Hardware Engineering SPICE课程大纲
  • JDK8的下载安装与环境变量配置教程
  • 深入探讨分布式ID生成方案
  • 花钱的艺术:消费和投资如何分配
  • git 代码库查看方法