编译优化技术作为代码生成的核心手段,可以有效提升代码执行效率、降低程序员的负担和更好的兼容已有的生态。随着各种新型应用算法的涌现和执行硬件平台的多样化,如何结合新应用、新场景和新平台进行编译优化研究变得越来越重要。结合编译技术的发展趋势和产业界的需求,实验室开展新型编译优化技术的研究,并结合新型AI技术,研究智能编译技术。主要包括Java虚拟机技术、动态二进制翻译技术和面向深度学习的编译优化技术等。


Java虚拟机

      Java语言由于其平台无关性、面向对象以及内存自动管理等优势成为了近二十年内最流行的计算机程序设计语言之一。Java虚拟机作为Java语言的执行环境,其性能对Java应用的执行效率至关重要。当前JVM采用解释器与JIT结合的方式对Java Bytecode进行翻译,由于运行时开销等问题,无法满足Java应用的性能需求。针对JVM面临的性能挑战,结合当前各种新型人工智能和数据分析技术,实验室开展面向JVM的编译优化和安全加强技术,具体包括JVM的高可信评估技术、JVM的智能性能优化技术和面向JVM的安全技术等。

动态二进制翻译

      通过在运行时对源指令集架构的二进制程序翻译成目标指令架构的二进制程序,动态二进制翻译(Dynamic Binary TranslationDBT)技术是虚拟化和新型硬件软件生态兼容的关键技术之一。但目前动态二进制翻译技术面临动态翻译开销大、代码翻译质量不高以及系统级动态二进制翻译性能较差和代码膨胀等挑战。针对这些挑战,实验室结合最新人工智能技术,开展动态二进制翻译技术研究,包括结合人工智能的翻译规则生成方法、面向系统级的动态二进制翻译优化和动静结合的二进制翻译等研究。

面向深度学习的编译优化技术

      随着深度学习技术的飞速发展和硬件平台的不断丰富,越来越多的深度学习框架支持深度学习应用的快速开发。相关框架为了降低开发的复杂度,屏蔽了很多底层硬件的细节,而通过引入深度学习编译优化技术将深度学习模型高效地映射到各种底层的硬件。而深度学习算法复杂程度的提高和硬件架构的多样化,给自动编译优化造成了越来越多的挑战。针对深度学习编译面临的挑战,实验室开展深度学习编译优化的研究,包括深度学习图优化,面向深度学习的Polyhedral编译优化以及基于深度学习技术指导的编译优化自动调优等。