这个有限责任公司编译器基础结构
站点地图:
下载!
搜索此网站


有用的链接
发布电子邮件

llvm-admin团队
CGO第七届LLVM性能研讨会
  • 什么:CGO第七届LLVM性能研讨会
  • 什么时候:2023年2月25日(星期六)
  • 哪里: 加拿大蒙特利尔Bonaventure酒店[本人]
  • 建议书应提交给: 易捷航空提交链接
  • 接收提交文件的截止日期为:2023年2月1日。
  • 发言人将通过以下方式收到接受或拒绝通知:2023年2月3日
  • 注:旅行补助金可根据要求提供。如果您需要研讨会的旅费补助金,请联系项目委员会。

第七次LLVM性能研讨会将在(CGO 2023年). 这个研讨会与CC、HPCA和PPoPP位于同一地点。如果你感兴趣参加研讨会时,请在(CGO网站). 组委会CGO/PPoPP/HPCA/CC已决定今年召开会议。LLVM研讨会CGO将派人参加。

项目委员会:

  • 约翰内斯·多尔费尔特(jdoerfert at llnl.gov)
  • 阿迪蒂亚(hiraditya at msn.com)
  • Jose M Monsalve Diaz(anl.gov网站jmonsalvediaz)
  • 田石磊(我在天石磊。me)

计划[WIP]

时间(EDT)

扬声器

标题

主题

8:00-8:10(10分钟)

何塞·蒙萨尔维·迪亚兹
田士雷
约翰内斯·多尔弗特
阿迪蒂亚

开幕词

欢迎和介绍

8:10-8:50(40分钟)

S.Venkatakerthy公司
悉达哈·贾恩
阿尼拉瓦·昆都
罗希特·阿加瓦尔
阿尔伯特·柯恩
罗摩克里希纳-阿帕德斯塔(Ramakrishna Upadrasta)

RL4ReAl:寄存器分配的强化学习
[幻灯片]

机器学习

8:50-9:30(40分钟)

里兹万·阿什拉夫
甄鹏
郭栾正
Gokcen Kestor公司

高性能图形算法的代码自动生成
[幻灯片]

Codegen公司

9:30-10:00(30分钟)

-

咖啡休息时间

-

10:00-10:40(40分钟)

马可·盖尔米
丹尼尔·库特宁
丹尼尔·曼科维茨
安德烈亚·米奇
马尔科·塞尔维
尼莱·瓦什
黄敏杰

std::sort的新实现
[幻灯片]

算法

10:40-11:20(40分钟)

枪手库德哈韦
阿迪亚·库马尔

优化编译器的内存使用?让我们先实现一个BasicProfiler!
[幻灯片]

11:20-12:00(40分钟)

约希姆·梅耶
阿克塞尔阿尔佩
塞巴斯蒂安·哈克
霍尔格·弗罗宁
文森特·休夫林

CPU上的Solid Work-Group同步
[幻灯片]

异构计算

12:00-12:10(10分钟)

何塞·蒙萨尔维·迪亚兹
田士雷
约翰内斯·多尔弗特
阿迪蒂亚

结束语

获取反馈

摘要

高性能图形算法的代码自动生成
回到计划

里兹万·阿什拉夫1、甄鹏1、栾城郭1Gokcen Kestor公司1

1太平洋西北国家实验室

图形算法在许多领域都有广泛的适用性,例如科学计算、社会科学等等。然而,要在计算系统上实现这些算法的良好性能,需要程序员付出大量努力,而且跨各种异构计算设备的可移植性并不是免费的。在本文中,我们描述了与基于库的方法相比,基于MLIR的COMET编译器对图形算法的优化支持,以实现可移植性和更快的实现。我们讨论了编译器前端、中间表示、工作区和屏蔽优化所需的扩展。我们的实验结果表明,与GraphBLAS标准的基于库的实现相比,在各种半环上的稀疏矩阵-稀疏矩阵运算的速度提高了3.7X。

的新实现标准::排序
回到计划

马可·盖尔米1,黄敏杰2,丹尼尔·库特宁1,丹尼尔·曼科维茨1安德烈亚·米奇1马可·塞尔维2尼莱·瓦什2

1深思熟虑,2谷歌有限责任公司

标准::排序是C++标准库中最常用的算法之一。在本文中,我们讨论了我们最近对利比亚银行++算法的实现以提高其性能。在我们进行更改之前,实现的核心是快速排序算法。该实现特别处理了一些特殊情况。长度小于等于5的集合使用排序网络进行排序。根据要排序的数据类型,长度不超过30的集合将使用插入排序进行排序。对于大多数项相等的集合和几乎已排序的集合,都有特殊的处理。

优化编译器的内存使用?让我们先实现一个基本分析器!
回到计划

Gunnar Kudrjavets公司1阿迪蒂亚·库马尔2

1格罗宁根大学,2ACM杰出演讲者

在流行的工业代码库中,文件和源代码行的数量很大。截至2017年,Microsoft Windows代码库包含350万个文件。2020年,Linux内核包含2780万行代码。对于成千上万的工程师来说,快速编译代码对开发人员的生产力至关重要。编译器性能要求很高,例如CPU和I/O使用率。应用程序的标准性能标准之一是内存使用率和内存分配器波动。内存使用率越低,意味着并行运行更多编译器实例的容量越大。减少内存使用的易受欺骗的解决方案,例如自定义内存分配器(例如。,果冻),可用。然而,在我们的行业经验中,没有什么可以取代上下文相关的目标优化。为了优化内存使用,我们需要能够进行可靠有效的测量。本演讲描述了与设计和实现一种性能和可伸缩的机制来拦截对内存分配器的调用相关的挑战。我们可以使用这种拦截机制作为一种重要的分析工具。这种类型的探查器的一个关键要求是低性能开销,使我们能够在生产环境中运行探查功能。确定和量化生产中的内存使用情况是一个复杂的问题。本演示的灵感来自我们在Meta(Facebook)的经验,在那里我们致力于各种应用程序的性能工程。我们讨论了与(a)拦截分配器调用的不同方法相关的问题,例如malloc和free,(b) 启用和禁用分配器拦截机制,(c)跟踪多个线程请求的分配数量和大小,(d) 在执行拦截机制期间可用的“安全”API的概念,以及(e)避免重入。我们通过讨论与扩展剖析机制相关的各种问题和解决方案来结束我们的演讲。如果内存中的数据结构不足以跟踪与性能相关的数据,则必须将其存储在某个位置。在多个读卡器和写卡器的情况下,与存储机制(如硬盘)交互将增加复杂性。作为我们讨论的一个具体示例,我们使用了有关Mac OS X的公开信息,并参考了苹果的源代码。

CPU上的Solid Work-Group同步
回到计划

约希姆·梅耶1、阿克塞尔·阿尔佩2塞巴斯蒂安·哈克1霍尔格·弗罗宁2文森特·休夫林

1萨尔州大学萨尔州信息学院编译器设计实验室,2海德堡大学,德国海德堡大学

越来越多的框架和仿真是使用异构编程模型开发的,例如CUDA、HIP、SYCL或OpenCL。它们的分层内核模型很容易映射到GPU的资源层次结构、大量线程和轻量级同步。为了与仅支持CPU的高性能计算设施(例如Fugaku)兼容,或者为了在GPU和CPU之间拆分工作,如果为这些编程模型编写的内核也可以在CPU上执行,那将是非常有益的。以性能可移植的方式实现这一点的一个重要障碍是,在CPU上实现此类内核的障碍需要提供前向progress保证。这些保证只能通过使用足够的并发性(通过线程或光纤)或编译器转换来提供,这些转换可以在障碍处分割内核。虽然仍在提出新的变体和改进,但编译器转换在精神上是相似的。这意味着在异构编程模型的研究和生产运行时中会定期重新执行基本转换。我们建议在LLVM中使用其中一个上游实现,以便重用成熟的优化实现。

RL4ReAl:寄存器分配的强化学习
回到计划

S.Venkatakerthy公司1,悉达哈·贾恩1,阿尼拉瓦·昆都1罗希特·阿加瓦尔1阿尔伯特·科恩2和罗摩克里希纳·阿帕德斯塔1

1海得拉巴IIT,2谷歌

我们的目标是利用机器学习,自动化数十年来在寄存器分配方面的研究和经验。我们通过在LLVM中嵌入多智能体强化学习算法来解决这个问题,并使用最先进的技术对其进行训练。我们将精确定义给定指令集体系结构问题的约束形式化,同时确保生成的代码保持语义正确性。我们还开发了一个基于gRPC的框架,为训练和推理提供了模块化和高效的编译器接口。我们的方法与体系结构无关:我们展示了针对Intel x86和ARM AArch64的实验结果。我们的结果与LLVM的高度优化的生产粒度寄存器分配器相匹配或优于后者。

呼叫演讲者

我们邀请学术界和工业界的演讲者就以下主题(包括但不包括限于:)

  • 改进LLVM工具链构建的应用程序的性能和代码大小
  • 提高LLVM运行库的性能
  • 提高生成代码的安全性
  • 使用LLVM基础设施中的某个库开发的任何工具或产品
  • 随时间推移的性能跟踪
  • 编译器标记、注释和备注,以了解和提高性能
  • 与改进和维护LLVM生成代码的性能和质量相关的任何其他主题

虽然研讨会的主要重点是这些主题,但我们欢迎与LLVM项目及其子项目(clang、,mlir、lldb、Polly、lld、openmp、pstl、compiler-rt等),以及它们在工业和学术界的应用。

我们正在寻找:

  • 主讲人(30-60分钟),
  • 技术演示(30分钟加上问题和讨论),
  • 教程(30-60分钟),
  • 面板(30-60分钟),
  • BOF(30-60分钟)

提案应为审查提供足够的信息委员会能够判断提交的质量。建议可以以扩展摘要、全文的形式提交,或幻灯片。将呈现已接受的演示文稿在线。演示文稿将在https://llvm.org/devmtg/,录制将在LLVM的youtube频道

如有任何疑问,请联系研讨会组织者:JohannesDoerfert(jdoerfert at llnl.gov)、Aditya(hiraditya at msn.com)、,Jose M Monsalve Diaz(anl.gov的jmonsalvediaz),田石磊(我在天石磊。我),

哪些类型的人参加?

  • LLVM Umbrella中项目的活跃开发人员(LLVM核心、Clang、LLDB、libc++、compiler_rt、klee、lld、,OpenMP等)。
  • 任何有兴趣将其用作另一个项目的一部分的人。
  • 学生和研究人员。
  • 编译器、编程语言和运行时爱好者。
  • 那些对以新颖有趣的方式使用编译器和工具链技术感兴趣的人。

面板

小组会议是关于特定主题的指导性讨论。该小组由~3名讨论某一主题的开发人员组成通过主持人准备的问题。观众也有机会向小组提问。

羽毛鸟(BoF)

BoF会议,一种会议上的非正式会议,与会者基于共同的兴趣和在没有任何预先计划的议程的情况下进行讨论。

技术会谈

这些20-30分钟的会谈涵盖了从核心基础设施会谈到项目使用LLVM基础设施的所有主题。与会者将带走与其项目或一般利益相关的技术信息。

教程

教程是30-60分钟的课程,深入探讨技术主题。期待深入的示例和解释。
行为准则

LLVM基金会致力于提供包容性和安全性每个人的体验。我们不容忍任何通过注册本次活动,我们希望您已经阅读并同意这个LLVM行为准则.

我们还坚持CGO使用的行为准则