Discuz! Board

 找回密碼
 立即註冊
搜索
熱搜: 活動 交友 discuz
查看: 1|回復: 0

发布人钱云迪研究部软件工程师和软件

[複製鏈接]

1

主題

1

帖子

5

積分

新手上路

Rank: 1

積分
5
發表於 18:36:55 | 顯示全部樓層 |閱讀模式

程师如何编译更快更小的代码的问题随着现代计算机的诞生而出现。更好的代码优化可以显着降低大型数据中心应用程序的运营成本。编译代码的大小对于部署在安全启动分区上的移动和嵌入式系统或软件最为重要其中编译的二进制文件必须符合严格的代码大小预算。随着该领域的进步日益复杂的启发式方法严重挤压了空间阻碍了维护和进一步改进。最近的研究表明机器学习可以通过用策略取代复杂的启发式方法来释放更多编译器优化的机会。然而在通用的行业级的编译器中采用机器学习仍然是一个挑战。为了解决这个问题我们引入了机器学习引导编译器优化框架这是第一个工业级通用框架用于将技术系统地集成到一种开源工业编译器基础设施普遍用于构建任务关键型高性能软件。

使用强化学习来训练神经网络做出可以替代中的启发式决策的决策。我们描述了的两种优化通过内联减少代码大小通过寄存器分配提高代码性能。这两种优化都可以在存储库中找到  格鲁吉亚电话号码列表 并且已部署在生产中。如何运作以作为案例研究内联通过做出能够删除冗余代码的决策来帮助减少代码大小。在下面的示例中调用者函数调用被调用者函数而被调用者函数本身又调用内联两个调用点都会返回一个简单的函数从而减少代码大小。内联通过删除冗余代码来减少代码大小。在实际代码中有数千个函数相互调用从而构成了一个调用图。在内联阶段编译器遍历所有调用者被调用者对上的调用图并决定是否内联调用者被调用者对。



这是一个顺序决策过程因为先前的内联决策将改变调用图影响后面的决策和最终结果。在上面的示例中调用图→→需要在两个边上做出是决策才能减少代码大小。在之前内联非内联决策是通过启发式做出的随着时间的推移改进变得越来越困难。用模型替代启发式。在调用图遍历期间编译器向神经网络寻求关于是否通过从图中输入相关特征即输入来内联特定调用者被调用者对的建议并顺序执行决策直到遍历整个调用图。。内联期间的图示。和是示例调用者被调用者对特征。使用策略梯度和进化策略算法通过训练决策网络策略。虽然最佳决策没有基本事实但在线强化学习会在训练和使用经过训练的策略运行编译之间进行迭代以收集数据并改进策略。


回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|自動贊助|z

GMT+8, 09:27 , Processed in 0.030231 second(s), 18 queries .

抗攻擊 by GameHost X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回復 返回頂部 返回列表
一粒米 | 中興米 | 論壇美工 | 設計 抗ddos | 天堂私服 | ddos | ddos | 防ddos | 防禦ddos | 防ddos主機 | 天堂美工 | 設計 防ddos主機 | 抗ddos主機 | 抗ddos | 抗ddos主機 | 抗攻擊論壇 | 天堂自動贊助 | 免費論壇 | 天堂私服 | 天堂123 | 台南清潔 | 天堂 | 天堂私服 | 免費論壇申請 | 抗ddos | 虛擬主機 | 實體主機 | vps | 網域註冊 | 抗攻擊遊戲主機 | ddos |