什么是共享GPU内存?它是否造成了内存的浪费?(Windows11平台)

您所在的位置:网站首页 gpu显存不够能不能用内存卡开机 什么是共享GPU内存?它是否造成了内存的浪费?(Windows11平台)

什么是共享GPU内存?它是否造成了内存的浪费?(Windows11平台)

2024-07-05 21:56| 来源: 网络整理| 查看: 265

我不是计算机专业出身,因此仅尝试对标题所示的问题给出自己的经验性的解释

先用生产线打个比方便于理解,之后看看在实机上这套说法能不能解释这个问题。

假设你有10条生产线(内存)上摆满了需要处理的零件(内存占用),但是每条生产线只有一个工人在工作。这时候可以将每条生产线看作是每个工人所独占的,但是每个部件都由1个工人负责你的工人就会干的很辛苦,生产速度也无法提高

为了加快生产速度,你让一些其他的工人(GPU、视频采集卡)来帮助你一起处理生产线上的零件,此时这条生产线被GPU和CPU或者其他辅助硬件共享了

接下来看看在实际应用中的情况,用Adobe Pr和ffmpeg分别对比硬件加速和只有软件编码情况下的内存以及共享GPU内存

Adobe Pr启动但是无编码任务Adobe Pr HEVC软编Adobe Pr HEVC硬编ffmpeg libx265软编

可以看到,Adobe Pr图形界面即使什么工作都不做相比于ffmpeg软件本身都占用大量内存,Adobe Pr硬编相比于软编虽然共享GPU内存增加了0.9G但是总的内存占用并没有增加(甚至还稍微降低了,可以理解为处理速度增加后生产线上可以更快的将处理完毕的零件卸下来,而生产线传递未处理零件的速度是有上限的)。

而真正只调用CPU的无图形界面的ffmpeg,没有产生额外的GPU共享内存。因此GPU共享内存实际上就是CPU将本来要处理的一部分数据让GPU一起帮忙处理。可能有人会问“为什么不放在显存中处理?明明显存速度更快而且占用率也低”。答案是可以用显存存放,但是并不会减少内存的占用。因为CPU不能直接操控显存上的数据,它只能将显存中的数据传输到内存或者缓存才能使用,而我们的日常应用有许多任务都是需要CPU和GPU合作处理的,无法让GPU独立完成自然不能用显存取代GPU共享内存,顶多是让同一份资料同时占据显存和内存,以便于GPU帮助处理。

测试所用软件版本:

Windows 11 Version 22H2 KB5027303

ffmpeg 2023-03-27-git-f7abe92bd7-full_build

Adobe Premiere Pro 23.0



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3