【AI帮我忙之补知识 显存和卡顿的关系】
背景
之前只知道显存大了会卡 超出了显存他会和CPU那边交换数据 会爆卡
但是对于还没超过的情况为什么会卡一直懵懵懂懂 这次问问AI 解开疑惑
问问AI
答案精简过
问:我如果只有8G显存 总体资源不超过8G 除非资源太碎 触发cache频繁更新才会卡对吗?
AI:
1 总资源小于8G 不会触发VRAM内存的PCle低速交换 这是最严重的那种
2 但依然会有两种轻度卡顿 和你说的碎片 cache有关系
情况1 显存碎片
物理上显存是一块 但是实际和CPU的malloc类似,地址加偏移涵盖一片内存空间,GPUI硬件访问纹理 FBO 计算张量时 硬件接口要求 单个资源必须要放在单一连续地址段不能两个非连续的存,当需要一大块连续空间 但是没有这么大的空闲空间驱动就会腾空间分配内存 这块是显存内部高速拷贝 带宽高 卡顿轻微 但总归是有开销的
情况2 就是L1 L2纹理cache频繁失效
cache只有几MB 只存当前着色器正在读取的一小块像素
贴图数量极多 画面纹理跳转剧烈 快速转身 大范围视野切换 这时候
cache存不下当前需要采样的像素 只能反复去取新数据 这里的损耗是显存内部读取延迟不会卸载贴图 小幅度降低帧率 这里即使超多小贴图 也比不过显存超的情况
