Google Summer of Code 2021

eopXD
·
·
IPFS
·

這不是一篇技術筆記,主要紀錄今年 Google Summer of Code 的參與。當然,對 LLVM 的參與並不會隨著專案告一個段落而結束。在此分享自己參與的方式與經驗,也想跟大家說 LLVM 社群真的是一個很酷的地方。

首先要感謝這次專案的導師 Whitney Tseng, Ettore Tiotto 還有一起參與專案的Toshiki Maekawa。感謝 Whitney 讓我有這個機會參與,並適時給出建議與介紹對優化更熟悉的前輩來幫忙引導或是做 code reveiw;感謝 Ettore 在週會上給出的建議;感謝 Toshiki 在群組聊天中的幫助。

現在的身份已經不是學生,在大學時一直知道「開源社群」這個概念但是不知道從何參與起。到了今年在下班閒暇之餘在網站上逛了今年 GSoC 的 LLVM 專案覺得 Utilizing LoopNest 十分有趣,可以熟悉 middle-end 的優化,決定鼓起勇氣寄信給 Whitney 詢問是否可以參與。這也是我認為開源社群最引人入勝的部分,社群成員會幫你 code review 與解答困惑。當然我對此抱持著感恩的心,也希望自己能變強回饋社群。很高興 Whitney 答應了,於是開始了這次的專案。

儘管大學時的編譯器課並不是 LLVM 的 pass infrastructure,但是拜工作之賜,trace 起來並不太費力。從五月底開始每個禮拜四的晚上 11 點是跟專案成員的週會。一開始對目標並沒有實作上的想像,但是在 Whitney 還有 Ettore 的幫助下逐漸有了了解。

LLVM 是用 Phabricator 來做專案的管理,並不像其他專案在 Github 上面送 pull request,而是在 Phabricator 上創造你這次更動的「patch」,並託付社群其他人來幫你 review,最後 patch 被 accept 後可以自己 commit 到 llvm/llvm-project 上。

隨著送 patch 的過程,其實也會發現原本實作的想像又不全然是正確的。我覺得這也是軟體開發過程中很有趣的一部份,能夠透過合作討論逐漸找到共識與比較好的作法。(當然一開始沒有直接做好做對也是因為我不夠強 TAT)。幫忙檢視的都是十分資深的工程師,來自世界各方,每次 patch 都能夠有一些收穫,實在是非常棒。

到了現在手上也一些 patch 正在進行(有機會再一一介紹),也逐漸知道該怎麼自己獨立與其他成員互動。雖然因為學生暑假要結束了,Toshiki 需要向 Google 繳交一個結案報告,但是我當然會持續這些 patch 的補完。覺得 GSoC 真的是一個很不錯的活動,能夠讓有心參與者能夠有一個開啟接觸開源的管道,也非常感謝那些志願幫忙的導師。

最後再謝謝一次 Whitney, Etorre, Toshiki。希望未來有機會繼續合作,來台灣再帶你們去吃好吃的!

Original link: eopXD

CC BY-NC-ND 2.0 授权

喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!

eopXDHi 我是 eop 。 畢業於台灣大學資訊工程系(NTU CSIE), 現在是 Sifive 的 Compiler Engineer。 (Ex-Skymizer Compiler Engineer) 你可以在 eopxd.com 找到我! 我會發布一些對技術的整理、閱讀或觀影的心得或是生活的感悟。 如果覺得這些創作有價值,歡迎支持我。 希望人生能一直過得有趣又有挑戰。
  • 来自作者
  • 相关推荐

2021 LLVM Dev Mtg: How to utilize a LoopNest pass

Contributing to upstream LLVM

Recursive template metaprogramming (Part III)