This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
tiled_code_generator_dtiler [2014/12/11 19:50] yun |
tiled_code_generator_dtiler [2017/04/19 13:31] (current) |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | Tiling is an important program transformation that is used to improve data locality and parallelization granularity. We provide a tiled code generator that produces tiled code that tiles bands of the program dimensions, | + | ======Tiled Code Generator====== |
| + | Tiling is an important program transformation that is used to improve data locality and parallelization granularity. We provide a tiled code generator that produces tiled code with wavefront parallelization | ||
| + | ===Usage=== | ||
| + | Let's use the classic matrix multiplication as an illustration example, whose alphabets code is the following: | ||
| + | <sxh alphabets; gutter: | ||
| + | affine matrix_product {P, Q, R|P>0 && Q>0 && R>0} | ||
| + | | ||
| + | float B {k,j| 0< | ||
| + | | ||
| + | using | ||
| + | float temp_C {i, | ||
| + | through | ||
| + | | ||
| + | {|k> | ||
| + | {|k==0} : 0; | ||
| + | esac; | ||
| + | | ||
| + | . | ||
| + | </ | ||
| + | The tiled code generator is called through ScheduledC, therefore, the first step for the code generation is the same with ScheduledC -- specify spacetime map and memory map. | ||