Jittor / jittor

Jittor is a high-performance deep learning framework based on JIT compiling and meta-operators.
https://cg.cs.tsinghua.edu.cn/jittor/
Apache License 2.0
3.08k stars 311 forks source link

可以介绍下编译是怎么route到binary call #36

Closed FrankSzn closed 4 years ago

FrankSzn commented 4 years ago

可以介绍下编译是怎么route到binary call,比如说nvcc和gcc,这一部分不是很了解,不知道从哪一部份入口去了解整个编译

MenghaoGuo commented 4 years ago

首先非常高兴看到您对Jittor的底层实现感兴趣 ! 整个编译流程大概是:

  1. 执行到第i个op的时候,会把这个op的输出var所需要的内存先申请好,相关代码:allocator.cc, sfrl_allocator.cc
  2. 申请好内存以后,就开始准备计算了,计算前会先调用jit_prepare来生成op的jitkey,这个jitkey就是op的身份证,看一下这个op是不是已经被编译过了,相关代码:jit_key.cc
  3. 准备完成以后,检查一个op是否被编译过:Op::jit_run
  4. 如果编译过,开始执行,如果没有编译过,开始编译,相关代码:op_compiler.cc

最后,如果您对这个项目非常感兴趣,欢迎和我们深入交流,一同打造更好、更完善的 Jittor。 我们的联系方式 Email :jittor@qq.com