LLVM & MLIR 仓库概况
输入“/”快速插入内容
LLVM
&
MLIR
仓库概况
用户54
用户54
2024年12月1日修改
2023年6月7日创建
1190
1420
工程经验丰富的 LLVM / MLIR 的新人,
通过了解 code repo 的代码量分布 & 模块名字,可以更快的建立总体认知,抓取学习的重点模块。
总结
1.
LLVM
仓库里的项目,很多。比如:
clang
,LLVM,
MLIR
等。
a.
LLVM
项目,有 300 万行代码,其中,200 万
c++
,60 万汇编。代码有点多。
b.
MLIR
30 万行,相对合理。
c.
Clang
也是代码狂魔。250 万行代码,其中有 200 万的
c/c++
。
2.
LLVM
要点:
a.
主要提供了 IR、pass、硬件 target、codegen 相关的抽象和代码。
b.
封装很干净。除了极个别的 pass,大部分都是几百到三五千行代码搞定。
c.
Target 代码有 75 万行,非常多。支持了:
x86
, aarch64,
arm
, riscv, mips 等。支持 AMD
GPU
,且代码量最多,有 12 万行。
3.
MLIR
要点:
a.
在
LLVM
基础上,主要引入了 dialect 和 conversion 2 个抽象。
b.
Target 不是具体的硬件,而是
llvm
ir,SPIR-V (
GPU
相关,Vulkan 的 IR),
cpp
这样的抽象 IR。
c.
dialect 都是一些比较基础的计算组件,没有与 deep learning 直接相关的。
仓库概况
总体代码行数
LLVM
仓库里的项目,有点多。
重点的关注的有:
clang
,
LLVM
,
MLIR
等。
llvm
仓库里的 llvm 子项目,一共 300 万行代码,其中,200 万
c++
,60 万汇编。
代码量有点大,怀疑有大量是 code 生成的 code。