プログラミング
ヨハネス・ドゥーファート氏を偲んで
Remembering Johannes Doerfert (blog.llvm.org)
要約
LLVMコンパイラプロジェクトの著名な貢献者であるヨハネス・ドゥーファート氏が、36歳で癌との闘病の末、2026年9月17日に亡くなりました。彼はAttributorフレームワーク、OpenMPとGPUオフローディング、Pollyポリヘドラル最適化など、LLVMの多くの分野に貢献し、コミュニティの育成にも尽力しました。
全文翻訳
ヨハネス・ドゥーファート氏を偲んで
2026年9月17日、36歳で癌との闘病の末に亡くなられたヨハネス・ドゥーファート氏の訃報に接し、深い悲しみを覚えています。ヨハネス氏は、LLVMコンパイラプロジェクトにおいて最も多作で尊敬される貢献者の一人であり、その喪失は深く感じられるでしょう。
ヨハネス氏は1989年11月5日に生まれました。2018年にドイツのザールブリュッケンにあるザールランド大学でコンピュータサイエンスの博士号を取得し、彼の研究はポリヘドラルコンパイラ技術を低レベルコードに応用することに焦点を当てていました。2014年からLLVMに積極的に貢献し始め、セバスチャン・ハック教授のコンパイラ設計ラボで働き、2012年には早くもPollyポリヘドラル最適化プロジェクトのコア開発者となりました。
その後10年間、ヨハネス氏はコンパイラ研究と高性能コンピューティングの交差点でキャリアを築き、最近ではOpenMP、LLVM、並列プログラム最適化に焦点を当てた研究者として活動していました。
LLVMへの貢献
ヨハネス氏はLLVMプロジェクトの多くの部分で作業しており、以下はその貢献の一部です。
Attributorフレームワーク。ヨハネス氏は、プログラム全体にわたって関数と引数の属性を推論および伝播するための、LLVMの汎用的な相互手続き的固定点反復フレームワークであるAttributorを設計し、推進しました。彼は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とHPCコミュニティを結びつけるのに貢献しました。
彼はLLVM開発者会議の新規参加者およびコミュニティセッションに頻繁に出席していました。彼はLLVM開発者会議に新規参加者を歓迎し、プロジェクトへの関与を深める方法について、自身の助言と知恵を共有しました。
ヨハネス氏はまた、毎週LLVMのオフィスアワーを開催し、OpenMP、LLVM-IR、相互手続き的最適化、Attributor、ワークショップ、研究などに関する質問に答えていました。
次世代のメンタリング
ヨハネス氏は数年間LLVMのGoogle Summer of Codeメンターを務め、様々なプロジェクトで学生貢献者を支援しました。以下はその一部です。
2016
LLVMにおける分析パスとしてのPolly
2019
(関数)属性推論の改善 (Brian Homerding氏と)
(関数)属性推論の改善 - 2 (Brian Homerding氏と)
注釈付きソースの生成 (Brian Homerding氏と)
2020
並列性認識分析および最適化の改善 (Jon Chesterfield氏と)
コンパイラ最適化パスの順序付けのための高度なヒューリスティック (EJ Park氏とGiorgis Georgakoudis氏と)
相互手続き的分析および最適化の改善 (Brian Homerding氏と)
コンパイラ最適化パスの順序付けのための高度なヒューリスティック - 2 (EJ Park氏とGiorgis Georgakoudis氏と)
ホストからデバイスへのメモリ転送のためのレイテンシ隠蔽 (Jon Chesterfield氏と)
相互手続き的分析および最適化の改善 - 2 (Brian Homerding氏と)
非正確な関数の属性推論 (Brian Homerding氏と)
2021
ループ変換ヒューリスティックの学習 (Mircea Trofin氏と)
BLASやEigenのような数値計算ルーチンのカスタム微分をEnzymeに統合する (William Moses氏とVassil Vassilev氏と)
実行時パラメータの予測によるOpenMPコード生成の改善 (Jon Chesterfield氏と)
RustにEnzymeを統合してRustで高性能な微分を提供する (William Moses氏と)
相互手続き的分析および最適化の改善 (Jon Chesterfield氏と)
Pollyのための公式isl C++バインディングの使用 (Michael Kruse氏と)
RustへのEnzymeの統合 (William Moses氏と)
2022
並列プログラムにおける非決定性ベースの最適化 (William Moses氏と)
ループ変換ポリシーとそのRISC-Vへの影響の学習 (Mircea Trofin氏と)
2023
機械学習によるコンパイラ最適化パスの順序付け (Tarindu Jayatilaka氏とMircea Trofin氏と)
2024
LLVMにおける1001の閾値 (Jan Hückelheim氏とWilliam Moses氏と)
GPU Libcベンチマーキング (Joseph Huber氏と)
LLVM-IRコンパイルの統計分析 (Aiden Grossman氏と)
2025
Rust-Enzymeの信頼性とコンパイル時間の改善 (Manuel Drehwald氏とKevin Sala氏と)
オフローディングのためのLLVMコンパイラ注釈可視化ツール (Jose M Monsalve Diaz氏とKevin Sala氏と)
表彰台での10年
数え切れないほどのコード貢献、メンタリング、コミュニティ構築に加えて、ヨハネス氏は米国のLLVM開発者会議とEuroLLVMに常に存在感を示していました。彼は11年間(2015年~2024年)で11回の会議に出席し、少なくとも26回の講演セッションを行い、さらに多くのセッションの執筆を支援しました。
2015 — 米国開発者会議 (サンノゼ)
OpenCLのための入力空間分割
チュートリアル: Polly - スケジュールツリーを用いた楽観的ループネスト最適化 (Tobias Grosser氏と)
2016 — EuroLLVM (バルセロナ)
Pollyによるループの分析と最適化 (Tobias Grosser氏と)
BoF: Polly - ループ最適化インフラストラクチャ (Tobias Grosser氏とZino Benaissa氏と)
2017 — 米国開発者会議 (サンノゼ)
BoF: LLVMにおける最小IR拡張を用いた並列性の表現のための考えと状態 (Xinmin Tian氏、Hal Finkel氏、Tb Schardl氏、Vikram Adve氏と)
ポリヘドラル値とメモリ分析
2017 — EuroLLVM (ザールブリュッケン)
共同主催者
2018 — 米国開発者会議 (サンノゼ)
抽象化を遠慮なく使用した間接参照の最適化
BoF: 理想と現実: LLVMにおける最適な並列性とオフローディングサポート (Xinmin Tian氏、Hal Finkel氏、TB Schardl氏、Vikram Adve氏と)
2019 — EuroLLVM (ブリュッセル)
GPUへの(OpenMP)ターゲットオフローディングのためのコンパイラ最適化
BoF: IPO — 現在地と目指す場所は? (Kit Barton氏と)
2019 — 米国開発者会議 (サンノゼ)
Attributor: 汎用的な相互手続き的固定点反復フレームワーク
チュートリアル: Attributor: 汎用的な相互手続き的固定点反復フレームワーク
チュートリアル: LLVMの概要
ポスター: 相互手続き的情報推論のためのフレームワークAttributor (Hideto Ueno氏とStefan Stipanovic氏と)
2020 — 米国開発者会議 (仮想)
LLVMにおける相互手続き的最適化の現在と未来 (Brian Homerding氏、Stefanos Baziotis氏、Stefan Stipanovic氏、Hideto Ueno氏、Kuter Dinel氏、Shinji Okumura氏、Luofan Chen氏と)
(OpenMP)並列性認識最適化 (S. Stipanovic氏; H. Mosquera氏; J. Chesterfield氏; G. Georgakoudis氏; J. Huber氏と)
チュートリアル: 相互手続き的最適化インフラストラクチャの詳細 (B. Homerding氏; S. Baziotis氏; S. Stipanovic氏; H. Ueno氏; K. Dinel氏; S. Okumura氏; L. Chen氏と)
2021 — 米国開発者会議 (仮想)
パネル: LLVMにおける機械学習ガイド最適化
LLVMにおけるOpenMP GPU実行の最適化 (Giorgis Georgakoudis氏とJoseph Huber氏と)
2022 — 米国開発者会議 (サンノゼ)
パネル: LLVMにおける機械学習ガイド最適化 (MLGO)
パネル: C/C++最適化コンパイラのための高レベルIR
CUDA-OMP — または、ベンダーロックの打破 (Joseph Huber氏と)
GPUを第一級市民として扱うことについての考察
2023 — EuroLLVM (グラスゴー)
LLVMテストスイートをGPUで実行する方法とそこで見つかるもの
GPUカーネル言語としてのOpenMP
2024 — 米国開発者会議 (サンタクララ)
(オフロード)ソフトウェア管理仮想メモリ経由のASAN
ヨハネス氏は惜しまれる
コミット、講演、論文の数え切れない貢献の他にも、ヨハネス氏と共に働いた人々は、彼を人生に満ち溢れ、ユーモアのセンスがある人物として記憶しています。彼はソーシャルメディアのプロフィールを単に「LLVM開発者、OpenMP貢献者」とだけ記述した人物でした。