An Automatic Compiler Optimizations Selection Framework for Embedded Applications

Shih-Hao Hung, Chia-Heng Tu, Huang-Sen Lin, Chi-Meng Chen
{"title":"An Automatic Compiler Optimizations Selection Framework for Embedded Applications","authors":"Shih-Hao Hung, Chia-Heng Tu, Huang-Sen Lin, Chi-Meng Chen","doi":"10.1109/ICESS.2009.86","DOIUrl":null,"url":null,"abstract":"Optimizing compilers provide users with compiler options to maximize program performance. The selection of compiler options is important as the resulted performance can vary significantly. The best combination of compiler options is not only dependent on the program itself, but it also is highly related to the configuration of the system and the architecture of the processor that the program runs on. The determination of the best combination of compiler options is very complicated, as its complexity grows exponentially with the number of the optimization options the compiler offers. Many previous work attempts to shorten the search time by reducing the complexity of the problem. However, most of them focus on computational intensive applications, which run with little or no invocation of kernel functions and device input/output activities, which often dominate system performance in specific embedded environment, such as network appliance. This paper aims at system-wide compiler optimizations selection for embedded applications. We proposed an automated framework to judiciously select the compiler options not only for the control software in the user space but also for the associated kernel functions which perform the I/O operations for an embedded application. For this framework, we implemented compiler optimization selection algorithms and evaluated its efficiencies with and without performance monitoring hardware support. We argue that our framework is a platform-independent and system-level compiler options selection framework. Our experience in optimizing the performance of the embedded application on a production storage appliance show that an I/O-intensive application composed by various kernel modules device drivers under Linux can be optimized effectively and systematically.","PeriodicalId":335217,"journal":{"name":"2009 International Conference on Embedded Software and Systems","volume":"180 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2009-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"6","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2009 International Conference on Embedded Software and Systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICESS.2009.86","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 6

Abstract

Optimizing compilers provide users with compiler options to maximize program performance. The selection of compiler options is important as the resulted performance can vary significantly. The best combination of compiler options is not only dependent on the program itself, but it also is highly related to the configuration of the system and the architecture of the processor that the program runs on. The determination of the best combination of compiler options is very complicated, as its complexity grows exponentially with the number of the optimization options the compiler offers. Many previous work attempts to shorten the search time by reducing the complexity of the problem. However, most of them focus on computational intensive applications, which run with little or no invocation of kernel functions and device input/output activities, which often dominate system performance in specific embedded environment, such as network appliance. This paper aims at system-wide compiler optimizations selection for embedded applications. We proposed an automated framework to judiciously select the compiler options not only for the control software in the user space but also for the associated kernel functions which perform the I/O operations for an embedded application. For this framework, we implemented compiler optimization selection algorithms and evaluated its efficiencies with and without performance monitoring hardware support. We argue that our framework is a platform-independent and system-level compiler options selection framework. Our experience in optimizing the performance of the embedded application on a production storage appliance show that an I/O-intensive application composed by various kernel modules device drivers under Linux can be optimized effectively and systematically.
嵌入式应用的自动编译器优化选择框架
优化编译器为用户提供编译器选项以最大化程序性能。编译器选项的选择很重要,因为最终的性能可能会有很大差异。编译器选项的最佳组合不仅取决于程序本身,而且还与系统配置和程序运行所在处理器的体系结构高度相关。确定编译器选项的最佳组合是非常复杂的,因为其复杂性随着编译器提供的优化选项的数量呈指数增长。许多先前的工作试图通过降低问题的复杂性来缩短搜索时间。然而,它们中的大多数都集中在计算密集型应用程序上,这些应用程序运行时很少或根本不调用内核函数和设备输入/输出活动,它们通常在特定的嵌入式环境(如网络设备)中主导系统性能。本文旨在研究嵌入式应用系统范围内的编译器优化选择。我们提出了一个自动化框架来明智地选择编译器选项,不仅针对用户空间中的控制软件,而且还针对为嵌入式应用程序执行I/O操作的相关内核函数。对于这个框架,我们实现了编译器优化选择算法,并在有无性能监控硬件支持的情况下评估了其效率。我们认为我们的框架是一个独立于平台和系统级的编译器选项选择框架。我们在生产存储设备上优化嵌入式应用程序性能的经验表明,Linux下由各种内核模块设备驱动程序组成的I/ o密集型应用程序可以得到有效和系统的优化。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信