ezyang's blog

the arc of software bends towards understanding

2018/04

A compile-time debugger that helps you write tensor shape checks

A run-time debugger allows you to see concrete values in a program, make changes to them, and continue running your program. A compile-time debugger allows you to see symbolic values in a program, reason about them, and write the rest of your program, e.g. filling in missing tensor size checks, for example.

Here’s an example of a compiler-time debugger in action.

Let’s suppose you are writing a simple program to read a pair of tensors from two files and do a matrix multiply on them. “Easy,” you think, while writing the following program:

Read more...