网站首页 > 博客文章 正文
(Burst compiler,(Burst 突发、爆发/ compiler编译器),文中直接采用英文原说法Burst compiler.)
Burst compiler技术可以让 Unity项目开发人员利用 Arm处理器的 Neon指令集,在目标安卓设备上提高性能表现。
Unity 和 Arm 两家公司已经形成了合作伙伴关系,以增强Android生态系统中10亿多款Arm架构驱动的移动设备上手机游戏的开发体验。对于游戏开发者来说,性能表现是至关紧要的。
Arm于2020年5月底宣布了两种新产品,Cortex-A78 及 Cortex-X1,这些硬件的发展受益于 Arm架构下编译器技术的进步。编译器能确保你在开发高性能游戏时,转换和优化(代码)为高效的二进制文件,从而最大限度地利用Arm架构的特性。
关于 Burst
Burst 是一种先进的编译器技术,通过使用“新的面向数据的技术栈(DOTS)”和 Unity Job系统,可以用来加速 Unity项目的性能表现。
Burst 的工作方式是编译 C# 语言的一个子集,也就是高性能 C#(HPC#),通过部署构建在 LLVM编译器框架之上的高级优化,来更为有效地利用设备。
Burst 对于利用应用程序中的隐藏 并行性(parallelism)很有用处。使用 DOTS项目中的 Burst很容易,并且可以在 CPU绑定算法中释放出很大的性能优势。
Burst 编译的代码能够更快地计算具有更多的物理帧数,从而得到更好的性能、减少设备过热、更低的电池消耗、表现更多吸引人的内容。
Burst 工作原理
Burst 将 HPC# 代码转换为 LLVM IR,这是 LLVM编译器框架使用的一种中介语言。这允许编译器充分利用 LLVM 对 Arm架构代码生成的支持,从而生成围绕程序数据流优化的高效机器代码。此流程的图表如下所示:
如何编写 Brust程序
你可以通过 DOTS里 Unity Jobs系统,使用 Burst编译 C# 脚本。记得提前把[BurstCompile]属性加入菜单Job内:
我们可以使用在“Jobs”菜单中找到的“Burst”检视窗来查看将生成哪些代码。
注意在这个演示中,我们已经禁用了安全检查,并且正在使用的版本是 Burst1.3.3,如下图:
在我们选中的突发检查器里,
选择 ARMV8A_AARCH 64 为 ARMv8-A 启用代码生成:
现在可以看到为我们的 C# 循环生成的 AArch64 代码,包括使用 Neon指令集的核心循环:
<完>
猜你喜欢
- 2025-05-24 Population Count算法-求二进制数中1的个数
- 2025-05-24 超详细!旗舰SoC RK3588参数介绍-飞凌嵌入式
- 2025-05-24 苹果M4采用ARMv9架构,使其能够更有效地运行复杂的工作负载
- 2025-05-24 手机小白看不懂?CPU/GPU/DSP傻傻分不清
- 2025-05-24 嵌入式软件进阶指南,一起来进阶!
- 2025-05-24 推理性能最高提升50倍 支持自定义指令集!Arm推出最新处理器内核
- 2025-05-24 python为什么不适合开发游戏引擎
- 2025-05-24 苹果M4处理器采用了ARMv9架构 使其能够更高效地运行复杂的工作负载
- 2025-05-24 SQLite的"底层密码":C语言如何成就轻量级数据库之王?
- 2025-05-24 8年老设备“逆天改命”!树莓派Zero W变身“AI神器”
你 发表评论:
欢迎- 380℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 375℃用AI Agent治理微服务的复杂性问题|QCon
- 372℃IT全明星|IntelliJ IDEA学习笔记(四、idea中怎么创建maven项目)
- 365℃初次使用IntelliJ IDEA新建Maven项目
- 359℃Maven技术方案最全手册(mavena)
- 356℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 354℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 353℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)