
深度学习显存怎么看Display、Reserved与Free详解在使用 Cognex Deep Learning 进行图像训练和运行时经常会遇到显存不足的问题。很多人看到显卡有 4GB、8GB 甚至 12GB 显存却不知道软件实际是如何分配这些显存的。Cognex Deep Learning 会将显存使用情况划分为几个部分包括Display、Reserved 和 Free。理解这三个概念可以更准确地判断一张显卡是否满足训练或运行要求。一、显存使用情况Cognex 官方给出的显存示意图如下可以将显存简单理解为三个区域类型含义Display用于存储计算前的图像Reserved为计算过程预留的显存Free当前尚未使用的显存需要注意的是Free 并不代表软件最终一定会使用这么多显存。这是因为实际计算过程中所需要的显存大小可能会发生变化因此软件需要保留一定的可用空间。二、Display用于存储图像Display Memory主要用于存储在进行计算之前需要处理的图像。例如一个视觉检测任务需要将相机采集到的图片送入 GPU那么这些图像在计算之前需要占用一部分显存。因此Display 所占用的显存通常与以下因素有关输入图像数量图像分辨率图像格式同时处理的图像数量应用程序本身的显存需求如果图像尺寸比较大同时又需要处理多张图片那么 Display 所需要的显存也会增加。三、Reserved为计算预留的显存Reserved Memory是为实际计算过程预留的显存。这部分显存主要用于深度学习模型运行过程中的计算例如模型参数、计算过程中的中间数据等。对于训练任务来说Reserved Memory 是比较重要的一部分。官方示例中训练时Reserved ≈ 2.0 GB也就是说训练任务至少需要大约2GB 的 Reserved Memory。四、Free当前剩余的显存Free Memory表示当前仍然没有被使用的显存。但这里需要特别注意Free 显存并不意味着这些显存一定会被当前任务全部利用。软件在运行过程中并不能始终准确预知未来需要多少显存因此需要保留一定的空闲显存作为缓冲。官方训练示例中Reserved ≈ 2.0 GB Free ≈ 1.0 GB因此显卡至少需要2.0 GB 1.0 GB 3.0 GB考虑到实际运行过程中还存在其他显存需求官方示例给出的结果是至少约 3.5 GB 显存也就是说对于这个训练示例来说可以将3.5GB 左右理解为显卡显存需求的参考值。五、训练时需要多少显存以官方给出的训练示例为例Reserved2.0 GB Free约 1.0 GB最终需要考虑的显存规模约为2.0 GB 1.0 GB实际选择显卡时还需要给系统和其他 GPU 程序留出一定余量。因此官方示例最终得出的结论是显卡至少需要约 3.5GB 显存。可以简单理解为训练显存需求 ↓ Reserved 计算显存 Free 缓冲显存 ↓ 显卡需要具备足够的总显存因此如果软件要求最低约 3.5GB 显存那么选择 4GB 显存的显卡虽然理论上可以满足但实际使用时余量比较小。如果条件允许选择更大显存的显卡通常更加稳妥。六、Runtime运行时的显存需求训练和 Runtime运行时并不是同一种显存需求。官方给出的 Runtime 示例为Reserved ≈ 512 MB Free ≈ 256 MB也就是说512 MB 256 MB 768 MB从这个示例来看Runtime 所需要的显存明显低于训练阶段。官方进一步指出Runtime 没有最低显存要求。也就是说在运行已经训练好的模型进行推理时显存需求与训练阶段存在明显区别。七、训练和Runtime有什么区别可以通过下面这张表快速理解项目TrainingRuntimeReserved约 2.0 GB约 512 MBFree约 1.0 GB约 256 MB显存需求至少约 3.5 GB无最低显存要求训练阶段需要进行模型训练因此计算量和显存需求更高。而 Runtime 主要用于已经训练好的模型进行实际推理因此显存需求相对较低。八、显存越大越好吗对于深度学习视觉应用来说显存越大通常意味着能够处理更大的任务但并不是简单地认为显存越大计算速度就一定越快。例如4GB 8GB 12GB 16GB更大的显存主要解决的是能否装下任务以及运行时是否有足够余量的问题。如果任务本身只需要 3GB 显存那么换成 16GB 显存并不会直接让模型计算速度变成原来的几倍。因此选择显卡时需要同时关注GPU 计算性能显存容量显存带宽CUDA / GPU 架构支持情况图像分辨率模型规模同时处理的图像数量训练还是 Runtime 推理九、如何判断自己的显卡是否够用实际选择显卡时可以按照下面的思路判断。1. 首先确认是训练还是Runtime如果只是部署已经训练好的模型进行检测那么通常不需要按照训练阶段的显存要求来选择。如果需要进行模型训练则需要重点关注 Reserved Memory 和 Free Memory。2. 查看当前显存使用情况可以通过显卡监控工具查看 GPU 显存例如 NVIDIA GPU 可以使用nvidia-smi查看当前显存总量、已使用显存以及剩余显存。3. 留出一定余量不要把显卡标称显存容量刚好当作软件可以使用的全部显存。例如任务预计需要约3.5 GB那么选择 4GB 显存的显卡实际可用余量已经比较有限。如果预算允许可以选择8GB甚至更高容量的显卡。这样在后续提高图像分辨率、增加任务规模或者运行其他 GPU 程序时会更加从容。十、总结Cognex Deep Learning 的显存可以从三个概念来理解Display ↓ 存储计算前的图像 Reserved ↓ 为计算过程预留的显存 Free ↓ 当前未使用、用于应对未知显存需求的空间官方训练示例Reserved2.0 GB Free约 1.0 GB 最终建议至少约 3.5 GB 显存官方 Runtime 示例Reserved512 MB Free256 MB 最低显存无明确最低要求因此训练阶段对显存的要求明显高于 Runtime 推理阶段。在实际购买 GPU 时也不要只看软件给出的最低显存要求。最低要求通常只是能够运行任务的参考值实际部署还应该考虑系统占用、图像尺寸、模型规模以及其他 GPU 程序带来的显存开销。对于需要长期运行的视觉检测项目来说适当预留显存空间比刚好达到最低要求更加合理。