用人工智能自动优化程序代码_第1页
用人工智能自动优化程序代码_第2页
用人工智能自动优化程序代码_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用人工智能自动优化程序代码在为移动平台及多核芯片开发高性能软件时,人工智 能技术可以发挥独特的作用,由 IBM 、欧盟等支持进行的 MilePost 研究项目在这方面做出了大胆的探索。在软件开发过程中,程序代码的优化是一个基本的步 骤。所有的程序员都希望他们编写的程序运行得更快、占用 更少的资源。 然而, 当今 CPU 的架构非常复杂, 进行处理器 级的代码优化不仅复杂而且费时,所以一般的程序员根本做 不了这项工作,必须依靠优化编译器还完成。经过这些编译 器优化后的机器码简单而且高效,只有极少数的汇编语言大 师可以与之媲美, 因此,也没有必要在进行进一步的优化了。但是,这里有个前提就是人们已经

2、为该 CPU 架构开发出 了一个非常好的优化编译器。一般而言,为当今主流的台式 CPU 找一个这样的编译器并不难, 但是面对移动设备时就不 是那么回事了。在嵌入式系统快速发展的今天,处理器架构 变化太快了,编译器的设计和开发者们根本就跟不上这种变 化。一个有 IBM 研究院和欧盟支持的研究项目 MilePost 找 到了解决这一问题的办法。该项目的研究人员开发出了一个新的、实验性的 GCC 编译器,采用人工智能技术来提高代 码的质量。这个项目的最终目标是让编译器的开发者在为某 个指定的平台开发编译器时能够更容易,而解决办法则是让 编译器能根据平台的不同自动对代码进行优化。这是一个听 起来有些不

3、可思议但很有吸引力的想法,也许会成为编译器 的发展方向。优化是一个学习的过程就目前研究进展来看, MilePost 不会指导程序员编写代 码,也不会提供任何关于如何编写高效算法的建议, MilePost 所做的是通过机器学习技术收集软件在性能方面的数据,然 后对机器码进行响应的调整。这是一个非常复杂的过程(如果你感兴趣,已经有很有 学者发表了众多与此相关的论文) ,不过,从本质上说,其 工作原理是通过分析源代码找出一些可能会用于优化的地 方,比如涉及很多参数的子程序、多层嵌套的循环语句以及 频繁使用的数学公式等。 在 MilePost 对某个程序中所有可以 优化的语句进行统计后,它再根据统计学

4、原理决定哪些优化 可以产生最佳结果,据此对编译后的代码进行针对性的调 整。这其实与这年来编译器的设计和研发人员在开发编译 器时所做的工作基本一样,区别只是研发人员在做这件事情 的时候更主观,很多时候,人们是在猜测那种优化方法可能 更好。而 MilePost 能够基于统计数据进行上述决策,这些统 计数据是代码在某种特定环境中运行时取得的。 根据 IBM 进 行的测试,与传统的编译器相比, MilePost 编译后的代码性 能能提高 18%左右。并不只是速度问题有人也许会问,现如今 CPU 的运算速度越来越快, 比如, 有研究显示,大多数使用者连 PC 处理器的一半处理能力都 没有用到,在这种情况

5、下,还有必要进行这么低级别的代码 优化?对台式 CPU 来说,情况也许的确是这样, 但是对移动 设备来说这种机器码级别的代码优化却是很有必要的。特别 是当某个设备安装的是低能耗的CPU ,而且其计算资源很有限的情况下,此时的代码优化就不是可做可不做,而是必须 做的工作。为移动设备开发软件的程序员常常要一次面对几种不 同的平台,保证在每个平台运行的程序性能大体一致需要大 量的代码优化工作。如果没有成熟的代码优化编译器,程序 员只好人工进行代码的优化。这种代码优化工作有时可能需 要几个月,既增加了开发成本同时也延误了产品上市时间。而一个具有机器学习能力的编译器可以自动根据每个平台 的特点进行代码的优化,从而把程序员从复杂而且耗时的代 码优化工作中解脱出来。从长远来看,机器学习技术还能给编译器带来其他帮 助。一个可能的应用领域就是是对在多核处理器上运行的代 码进行优化。并行编程是当今软件开发领域最大的挑战之 一,如果编译器通过机器学习能设法让代码自动并行运行, 这对于整个软件领域将是一个巨大的贡献,同时对芯片制造 商来说也是一个巨大的利好消息,因为可以解除它们设计多 核芯片时的后顾之忧。到目前为止, MilePost 还只算是一个实验性的项目,感 兴趣的人们可以从该项目的网站上下载源代码,编译它,自 己进行试验,但还不能指望马上就可以在软件开发过程中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论