User Tools

Site Tools


tiled_code_generator_dtiler

Differences

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

Link to this comparison view

Next revision
Previous revision
tiled_code_generator_dtiler [2014/12/11 19:44]
yun created
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. +======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.1418352297.txt.gz · Last modified: 2014/12/11 19:44 by yun