纪念 Johannes Doerfert
摘要
纪念 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/)。
相似文章
[RFC] LLVM Foundation 支持开放获取标准文档的声明
LLVM Foundation 发布了一份声明,倡导开放获取标准文档,旨在提高透明度和社区参与度。
关于编译器构建的观点
本文分享了关于现代编译器构建的个人观点,主张使用如OhmJS进行解析和Prolog进行类型检查的工具,重点强调简洁性和迭代开发。
软件开发人员感谢帖
一位用户对开源开发者表达感谢,着重提到vllm最近的多项重大发布修复了OOM问题,使得在5090上使用Qwen 27B时,上下文窗口大小翻倍至240k。
@doodlestein: https://x.com/doodlestein/status/2073825011249418358
来自AI模型Claude Fable在Rust中设计一个全面的计算几何与物理模拟框架时的详细推理过程,其中融入了共形几何代数和层上同调等高级数学概念。
@dbreunig:大版本发布:RLM 优化、优化链串联、LiteLLM 解耦启动,并有 24 位首次贡献者…
重磅开源版本:RLM 优化、优化链串联、LiteLLM 解耦启动,迎来 24 位新贡献者。