程序员们常被显存数字误导。标称24GB的显卡,实际可用空间往往远低于此,OOM崩溃总在不该发生时降临。
问题藏在内存碎片里。深度学习框架的分配策略并非最优,预留、缓存、对齐开销层层叠加,有效利用率有时不足七成。
打开网易新闻 查看精彩图片
更隐蔽的是"已分配"与"真正使用"的鸿沟。PyTorch的reserved memory和active memory差距可达数GB,监控工具却混为一谈。
打开网易新闻 查看精彩图片
厂商标称容量基于物理芯片,操作系统和驱动先切走一块。CUDA上下文、cuDNN工作区再占一层,用户能调度的只是残羹。
打开网易新闻 查看精彩图片
优化者开始手动管理显存池,用重计算换空间,或梯度检查点拆分前向传播。这些手段不增加硬件成本,只压榨被浪费的碎片。
热门跟贴