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:52] yun |
tiled_code_generator_dtiler [2014/12/11 19:58] yun |
||
---|---|---|---|
Line 1: | Line 1: | ||
======Tiled Code Generator====== | ======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 that tiles bands of the program dimensions, | + | 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. |