首页> 外文会议>IEEE International Parallel and Distributed Processing Symposium Workshops >Using LLVM for Optimized Lightweight Binary Re-Writing at Runtime
【24h】

Using LLVM for Optimized Lightweight Binary Re-Writing at Runtime

机译:使用LLVM在运行时优化轻量级二进制重写

获取原文

摘要

Providing new parallel programming models/abstractions as a set of library functions has the huge advantage that it allows for an relatively easy incremental porting path for legacy HPC applications, in contrast to the huge effort needed when novel concepts are only provided in new programming languages or language extensions. However, performance issues are to be expected with fine granular usage of library functions. In previous work, we argued that binary rewriting can bridge the gap by tightly coupling application and library functions at runtime. We showed that runtime specialization at the binary level, starting from a compiled, generic stencil code can help in approaching performance of manually written, statically compiled version. In this paper, we analyze the benefits of post-processing the re-written binary code using standard compiler optimizations as provided by LLVM. To this end, we present our approach for efficiently converting x86-64 binary code to LLVM-IR. Using the mentioned generic code for arbitrary 2d stencils, we present performance numbers with and without LLVM postprocessing. We find that we can now achieve the performance of variants specialized by hand.
机译:提供新的并行编程模型/抽象作为一组库函数具有一个巨大的优势,即它为传统的HPC应用程序提供了相对容易的增量移植路径,这与仅在新的编程语言或新编程语言中提供新颖概念所需的大量工作形成了鲜明的对比。语言扩展。但是,使用库函数的精细用法会导致性能问题。在先前的工作中,我们认为二进制重写可以通过在运行时紧密耦合应用程序和库函数来弥合差距。我们展示了从编译的通用模具代码开始的二进制级别的运行时专业化,可以帮助提高手动编写的静态编译版本的性能。在本文中,我们分析了使用LLVM提供的标准编译器优化对重新编写的二进制代码进行后处理的好处。为此,我们介绍了将x86-64二进制代码有效转换为LLVM-IR的方法。使用提到的用于任意2d模板的通用代码,我们可以显示带有和不带有LLVM后处理的性能数字。我们发现,我们现在可以实现手工专用变体的性能。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号