Mesa Zink 驱动的一个改进补丁降低了 50% 内存占用
Zink 是基于 Vulkan 的 OpenGL 实现,Valve 公司 Linux 图形驱动程序团队的 Mike Blumenkrantz 最近在研究 Zink 过度使用内存问题的来源。他已经为 Mesa 23.1 提交了一个 Zink 驱动内存优化补丁,这个改动使 Mesa Zink 驱动程序的内存使用率在大多数游戏中减少一半,但不会对性能产生任何负面影响。
背景
OpenGL 的游戏很多都是 x86 二进制文件,它们在 32 位进程中运行,而 32 位地址空间意味着可寻址内存有 4GB 限制,这个限制包括游戏的可寻址内存(例如,游戏的内部 malloc 调用)以及驱动程序的可寻址内存(例如,所有 GPU 映射内存),一旦内存占用临界或者超过该限制,应用就会崩溃。
之前 Mesa RADV 驱动程序就出现过内存问题,在打开 Dota 2 时,RADV 驱动程序占用了 3GB 主机内存。其中大部分内存占用都来自于内存着色器 IR,最后通过序列化内存中的着色器,节省了 85% 的内存,解决了内存占用异常问题。
Mesa Zink 驱动程序的内存使用和 RADV 驱动的问题有点相似。、Mike 在一篇博文中讲述了自己的内存优化过程,这次作为实验的游戏是古墓丽影三,最初打开游戏时内存占用 2.4 G,而且几乎全部由驱动程序分配:
第一步是着手序列化所有 NIR 着色器(NIR 是一种中间表示 (IR),专为满足 Mesa 中图形驱动程序的需求而设计。)。因为克隆 NIR 着色器会消耗过多的 RAM,对于创建大量图形的游戏来说,这很容易导致内存爆炸。序列化 NIR 比对象形式的 NIR 更紧凑,内存占用量小了一个数量级,使用序列化的 NIR 着色器对内存问题有很大帮助。第二步是压缩链接着色器时发生的 NIR 副本。最后将 Mesa RADV 的修复程序应用到 Mesa Zink 中。
最终将古墓丽影 3 的内存使用量降到 482.7 MB,减少了 79.9% 。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
斯坦福 2023 AI 指数:中国群众对 AI 产品和服务态度最积极
斯坦福以人为本人工智能研究所 (HAI)发布了最新一期的 2023 AI 指数 (2023 AI Index) 报告,其中探讨了过去一年机器学习的发展。斯坦福 HAI 于 2019 年初成立,致力于研究新的 AI 方法,并研究该技术对社会的影响。其每年发布一份 AI 指数报告,通过跟踪和评估 AI 进展,着眼于研发、技术性能、伦理、经济、政策、舆论和教育方面的趋势。 今年的报告包括对基础模型的新分析,包括地缘政治和培训成本、人工智能系统的环境影响、K-12 人工智能教育以及人工智能的舆论趋势。“该报告有助于在数据中建立人工智能对话的基础,使决策者能够采取有意义的行动以负责任和合乎道德的方式推进人工智能。” 报告的一些亮点内容包括: 工业界领先于学术界。2014 年及之前,大多数重要的机器学习模型都是由学术界发布的;但在之后,这个角色开始由工业界接管。到 2022 年,有 32 个重要的工业生产机器学习模型,而学术界只有三个。构建最先进的人工智能系统越来越需要大量的数据、计算和资金,与非营利组织和学术界相比,行业参与者固有地拥有更多的资源。 传统基准测试的性能饱和。AI 发展快速迭代,但...
- 下一篇
Fedora 计划默认启用磁盘加密
BitLocker 和 FileVault 分别是 Windows 和 Mac 设备自带的系统数据加密功能,这两个功能的核心作用就是对系统的数据进行加密,阻止别人在未经许可的情况下访问被加密的硬盘数据。 不管是系统被入侵、电脑失窃、送去维修,甚至是硬盘被连根拔走,不法分子都无法解密、恢复或访问其中的数据。在较新的 Windows 和 Mac 系统中,BitLocker 和 FileVault 都已默认开启。 反观 Linux,虽然现在有很多 Linux 发行版都支持加密,但实际上并没有多少发行版默认启用了这个功能,用户需要手动开启,而日前开发者提交的提议就有可能让未来的 Fedora Workstation 默认让其安装程序对磁盘进行加密。 来自红帽的开发者 Owen Taylor 近日在邮件列表中发布了围绕 Fedora 系统加密的一些计划,计划显示,他们打算在 Fedora Workstation 中使用即将推出的 Btrfs fscrypt 支持来加密系统和主目录。 默认情况下,系统将通过储存在 TPM 中的加密密钥进行加密,并将其与用于签署 bootloader/kernel/...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址