User Tools

Site Tools


tiled_code_generator_dtiler

Warning: Trying to access array offset on value of type bool in /s/chopin/h/proj/AlphaZ/public_html/wiki/inc/html.php on line 1164

Warning: Trying to access array offset on value of type bool in /s/chopin/h/proj/AlphaZ/public_html/wiki/inc/html.php on line 1168

Warning: Trying to access array offset on value of type bool in /s/chopin/h/proj/AlphaZ/public_html/wiki/inc/html.php on line 1171

Warning: Trying to access array offset on value of type bool in /s/chopin/h/proj/AlphaZ/public_html/wiki/inc/html.php on line 1172

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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, wavefront parallelization on shared memory machine is also supported+======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 supported for the shared memory machine. 
  
 +===Usage===
 +Let's use the classic matrix multiplication as an illustration example, whose alphabets code is the following:
 +<sxh alphabets; gutter:true>
 +affine matrix_product {P, Q, R|P>0 && Q>0 && R>0}
 +       given  float A {i,k| 0<=i<P && 0<=k<Q};
 +              float B {k,j| 0<=k<Q && 0<=j<R}; 
 +     returns  float C {i,j,k| 0<=i<P && 0<=j<R && k==Q};
 +using
 +   float temp_C {i,j,k|0<=i<P && 0<=j<R && 0<=k<=Q};
 +through
 +   temp_C[i,j,k] = case
 +                      {|k>0}  : temp_C[i,j,k-1] + A[i,k-1]*B[k-1,j];
 +                      {|k==0} : 0; 
 +                   esac;
 +        = temp_C;
 +.
 +</sxh>
  
 +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. 
tiled_code_generator_dtiler.1418352654.txt.gz · Last modified: 2014/12/11 19:50 by yun