View Code? Open in Web Editor
NEW
🎈 A C++ code generator for the automatic derivation of tensors with linear indexes. Implementation for the lesson Compiling Technology(2020 Spring, advised by Yun Liang) in Peking University.
License: MIT License
CMake 1.03%
C++ 87.04%
C 0.68%
Shell 0.75%
Yacc 0.16%
Lex 0.04%
Starlark 0.52%
Python 9.77%
autograd's Issues
看懂下面给的资料, 得出思路
下次开会时间: 05/16/2020 21:00
形如A[i,j] op B[j,k]
的Einstein求和(op
为*|/|//|%
)的计算:为每个不在LHS
中出现的变量j
生成一重For循环
TODO:
确认Einstein求和式中的下标变量范围:变量r
的范围是否会依赖另一个变量p
?(e.g. p in [0,5), r in [0,3), p+r in [0,6)
)/ 是否会生成for r = 0 to p
的代码
词法分析RHS
部分修改:引入新的Non-terminal分别表示RHS +|- RHS
和RHS *|/|//|% RHS
的情况
确认生成的C++代码是否保证Statement都在内循环里 / 是否会出现A<5,5>[i,j]=D<5,5>[i,j]+B<5,7>[i,k]*C<7,5>[k,j]
的情况
汇报bug:BNF无法处理case10括号的情况
建议大家都安装docker跑通代码