纪念 Johannes Doerfert

Lobsters Hottest 新闻

摘要

纪念 Johannes Doerfert,突出他对 LLVM 编译器项目的重要贡献,包括在 Attributor 框架、OpenMP offloading 和多面体优化方面的工作,以及他对开源社区的影响。

<p><a href="https://lobste.rs/s/cuxdjq/remembering_johannes_doerfert">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/09/25 09:11

# 纪念约翰内斯·德尔弗特 来源:https://blog.llvm.org/posts/2026-09-24-rememberingjohannesdoerfert/ 我们怀着深切悲痛宣告,约翰内斯·德尔弗特(Johannes Doerfert)于2026年9月17日因癌症辞世,年仅36岁。约翰内斯是LLVM编译器项目最具成就且备受敬重的核心贡献者之一,他的离去将令我们深切怀念。 约翰内斯出生于1989年11月5日。2018年于德国萨尔布吕肯的萨尔兰大学取得计算机科学博士学位,研究方向为将多面体编译技术应用于底层代码优化。自2014年起,他便在塞巴斯蒂安·哈克(Sebastian Hack)教授的编译器设计实验室开展LLVM贡献工作,早在2012年已成为Polly多面体优化项目的核心开发者。 在随后的十年间,约翰内斯始终致力于编译器研究与高性能计算的交叉领域,近期专注于OpenMP、LLVM及并行程序优化的研究工作。 ## 对LLVM项目的贡献 约翰内斯参与了LLVM项目的诸多模块,以下列举其部分代表性贡献: - **Attributor框架**:约翰内斯设计并主导开发了Attributor——LLVM的通用过程间定点迭代框架,用于推导和传播程序中的函数与参数属性。该框架于2019年LLVM开发者大会上正式推出,现已成为LLVM过程间优化基础设施的重要组成部分。 - **OpenMP与GPU卸载**:约翰内斯于2021年担任LLVM OpenMP目标卸载的代码负责人,主导开发了使OpenMP程序能在NVIDIA、AMD和Intel硬件的GPU上高效运行的编译器与运行时支持。其研究涵盖OpenMP运行时、目标卸载的即时编译与链接时优化,以及近零开销GPU执行技术。 - **Polly与多面体优化**:在其职业生涯早期,约翰内斯作为LLVM多面体循环优化基础设施Polly的核心开发者,发表了关于归约场景下的多面体调度以及乐观循环优化的研究成果。 他独立或合作撰写了数十篇关于编译器优化、GPU内核自动微分、性能可移植性及OpenMP的学术论文。 约翰内斯曾参与组织2017年在萨尔布吕肯举办的EuroLLVM会议,自2017年起在CGO会议筹办LLVM-HPC研讨会,并于2019年起主导ISC会议中的LLVM相关活动,有力促进了LLVM与高性能计算社区的融合。 他常年出席LLVM开发者大会的新手指导与社区交流环节,热情欢迎新成员参与LLVM开发者会议,并分享关于深入贡献项目的经验与建议。 此外,约翰内斯每周定期举办LLVM办公时间,解答关于OpenMP、LLVM-IR、过程间优化、Attributor、研讨会及研究工作等问题。 ## 培育新生力量 约翰内斯连续多年担任LLVM谷歌编程之夏导师,协助学生贡献者开展多项研究。以下为部分指导项目: - **2016年** - Polly作为LLVM分析通道的实现 - **2019年** - 改进函数属性推断(与布莱恩·霍默丁合作) - 改进函数属性推断(第二部分)(与布莱恩·霍默丁合作) - 标注源代码生成(与布莱恩·霍默丁合作) - **2020年** - 改进并行感知分析与优化(与乔恩·切斯特菲尔德合作) - 编译器优化通道排序的高级启发式策略(与EJ Park、吉奥尔吉斯·乔治亚库迪斯合作) - 改进过程间分析与优化(与布莱恩·霍默丁合作) - 编译器优化通道排序高级启发式策略(第二部分)(与EJ Park、吉奥尔吉斯·乔治亚库迪斯合作) - 主机到设备内存传输的延迟隐藏技术(与乔恩·切斯特菲尔德合作) - 改进过程间分析与优化(第二部分)(与布莱恩·霍默丁合作) - 为非精确函数推导属性(与布莱恩·霍默丁合作) - **2021年** - 循环变换启发式学习(与米尔恰·特罗芬合作) - 将BLAS、Eigen等数值计算库的自定义导数集成至Enzyme(与威廉·摩西、瓦西尔·瓦西列夫合作) - 通过运行时参数预测改进OpenMP代码生成(与乔恩·切斯特菲尔德合作) - 将Enzyme集成至Rust以实现高性能微分(与威廉·摩西合作) - 改进过程间分析与优化(与乔恩·切斯特菲尔德合作) - 为Polly采用官方isl C++绑定(与迈克尔·克鲁泽合作) - 将Enzyme集成至Rust(与威廉·摩西合作) - **2022年** - 基于非确定性的并行程序优化(与威廉·摩西合作) - 循环变换策略学习及其对RISC-V的影响(与米尔恰·特罗芬合作) - **2023年** - 机器学习引导的编译器优化通道排序(与塔林杜·贾亚蒂拉卡、米尔恰·特罗芬合作) - **2024年** - LLVM中的千零一道门槛(与扬·赫克尔海姆、威廉·摩西合作) - GPU Libc基准测试(与约瑟夫·休伯合作) - LLVM-IR编译的统计分析(与艾登·格罗斯曼合作) - **2025年** - 提升Rust-Enzyme可靠性与编译速度(与曼努埃尔·德雷瓦尔德、凯文·萨拉合作) - 卸载的LLVM编译器备注可视化工具(与何塞·M·蒙萨尔韦·迪亚斯、凯文·萨拉合作) ## 十年演讲生涯 除无数代码贡献、 mentoring 和社区建设外,约翰内斯更是美国LLVM开发者大会与EuroLLVM会议的常驻演讲者。他在11年间(2015–2024)共出席**11次会议**,进行至少26次演讲并参与更多内容的协作。 - **2015年 — 美国开发者会议(圣何塞)** - OpenCL输入空间分割技术 (https://www.youtube.com/watch?v=py3pUnvQ7cY&index=3&list=PL_R5A0lGi1AA4Lv2bBFSwhgDaHvvpVU21) - 教程:Polly - 基于调度树的乐观循环嵌套优化 (https://www.youtube.com/watch?v=mIBUY20d8c8&index=10&list=PL_R5A0lGi1AA4Lv2bBFSwhgDaHvvpVU21)(与托比亚斯·格罗塞尔合作) - **2016年 — EuroLLVM(巴塞罗那)** - 使用Polly分析与优化循环 (https://youtu.be/mXve_W4XU2g)(与托比亚斯·格罗塞尔合作) - 研讨会:Polly - 循环优化基础设施(与托比亚斯·格罗塞尔、齐诺·贝奈萨合作) - **2017年 — 美国开发者会议(圣何塞)** - 研讨会:关于在LLVM中用最小IR扩展表示并行性的思考与现状(与辛敏·田、哈尔·芬克尔、Tb·沙德尔、维克拉姆·阿德维合作) - 多面体值与内存分析 (https://www.youtube.com/watch?v=xSA0XLYJ-G0) - **2017年 — EuroLLVM(萨尔布吕肯)** - 联合组织者 - **2018年 — 美国开发者会议(圣何塞)** - 间接引用的无抽象损耗优化 (https://www.youtube.com/watch?v=zfiHaPaoQPc) - 研讨会:理想与现实:LLVM中的最优并行性与卸载支持(与辛敏·田、哈尔·芬克尔、TB·沙德尔、维克拉姆·阿德维合作) - **2019年 — EuroLLVM(布鲁塞尔)** - 面向GPU的(OpenMP)目标卸载编译器优化 (https://youtu.be/3AbS82C3X30) - 研讨会:过程间优化——现状与未来?(与基特·巴顿合作) - **2019年 — 美国开发者会议(圣何塞)** - Attributor:通用过程间定点迭代框架 (https://www.youtube.com/watch?v=CzWkc_JcfS0) - 教程:Attributor:通用过程间定点迭代框架 (https://youtu.be/HVvvCSSLiTw) - 教程:LLVM概述 (https://youtu.be/J5xExRGaIIY) - 海报:Attributor——过程间信息推断框架(与上野英登、斯特凡·斯蒂帕诺维奇合作) - **2020年 — 美国开发者会议(线上)** - LLVM中过程间优化的现状与未来 (https://youtu.be/uC-x_Je_sIw)(与布莱恩·霍默丁、斯特凡诺斯·巴齐奥蒂斯、斯特凡·斯蒂帕诺维奇、上野英登、库特·迪内尔、奥村真二、陈罗帆合作) - (OpenMP)并行感知优化 (https://youtu.be/gtxWkeLCxmU)(与S.斯蒂帕诺维奇;H.莫斯克拉;J.切斯特菲尔德;G.乔治亚库迪斯;J.休伯合作) - 教程:深入过程间优化基础设施 (https://youtu.be/I4Iv-HefknA)(与B.霍默丁;S.巴齐奥蒂斯;S.斯蒂帕诺维奇;H.上野;K.迪内尔;S.奥村;L.陈合作) - **2021年 — 美国开发者会议(线上)** - 专家论坛:LLVM中的机器学习引导优化 (https://www.youtube.com/watch?v=PLgbczJJC_I&list=PL_R5A0lGi1AATJX6-tY7IkYjpRjv30ziN&index=30) - 优化LLVM中的OpenMP GPU执行 (https://www.youtube.com/watch?v=4EPl7De3cKg&list=PL_R5A0lGi1AATJX6-tY7IkYjpRjv30ziN&index=19)(与吉奥尔吉斯·乔治亚库迪斯、约瑟夫·休伯合作) - **2022年 — 美国开发者会议(圣何塞)** - 专家论坛:LLVM中的机器学习引导优化 (https://youtu.be/0uUKDQyn1Z4) - 专家论坛:面向C/C++优化编译器的高级IR (https://youtu.be/ElxPbIX4rDU) - CUDA-OMP——打破供应商锁定 (https://youtu.be/7m8kn5_l970)(与约瑟夫·休伯合作) - 将GPU视为一等公民的思考 (https://youtu.be/YMI382d4Vz4) - **2023年 — EuroLLVM(格拉斯哥)** - 如何在GPU上运行LLVM测试套件及其发现 (https://youtu.be/_IYG_aMjsfs) - OpenMP作为GPU内核语言 (https://youtu.be/16cedvl2Ly4) - **2024年 — 美国开发者会议(圣克拉拉)** - (卸载)通过软件管理虚拟内存实现ASAN (https://youtu.be/B60jp4khrvc) ## 永恒的怀念 超越代码提交、会议演讲与学术著作,与约翰内斯共事者铭记他充满活力、幽默豁达的品格。他在社交媒体简介中曾如此描述自己:"LLVM开发者、OpenMP贡献者、啤酒爱好者(顺序不分先后)"。 追悼会将于2026年10月3日星期六下午1:00至5:00在加利福尼亚州圣何塞的圣何塞殡仪馆举行,德国另行安排纪念仪式。他身后留下妻子张雪芹、父亲尤尔根·德尔弗特(Jürgen Doerfert)以及全球亲友。 家属建议以向LLVM基金会捐款替代献花——这个他毕生致力于支持与发展的组织。**一位慷慨捐赠者承诺匹配约翰内斯纪念捐款中的五万美元。**若通过捐赠人建议基金直接捐赠LLVM基金会,请注明“纪念约翰内斯·德尔弗特”。 更多详情及悼念留言请访问约翰内斯的纪念页面 (https://everloved.com/life-of/johannes-doerfert/)。

相似文章

关于编译器构建的观点

Lobsters Hottest

本文分享了关于现代编译器构建的个人观点,主张使用如OhmJS进行解析和Prolog进行类型检查的工具,重点强调简洁性和迭代开发。

软件开发人员感谢帖

Reddit r/LocalLLaMA

一位用户对开源开发者表达感谢,着重提到vllm最近的多项重大发布修复了OOM问题,使得在5090上使用Qwen 27B时,上下文窗口大小翻倍至240k。