3 - gmp (http://gmplib.org/)
4 - libyaml (http://pyyaml.org/wiki/LibYAML)
5 - LLVM/clang libraries, 2.9 or higher (http://clang.llvm.org/get_started.html)
9 git clone git://repo.or.cz/ppcg.git
18 Specifying tile, grid and block sizes
20 The iterations space tile size, grid size and block size can
21 be specified using the --sizes option. The argument is a union map
22 in isl notation mapping kernels identified by their sequence number
23 in a "kernel" space to singleton sets in the "tile", "grid" and "block"
24 spaces. The sizes are specified outermost to innermost.
26 The dimension of the "tile" space indicates the (maximal) number of loop
27 dimensions to tile. The elements of the single integer tuple
28 specify the tile sizes in each dimension.
30 The dimension of the "grid" space indicates the (maximal) number of block
31 dimensions in the grid. The elements of the single integer tuple
32 specify the number of blocks in each dimension.
34 The dimension of the "block" space indicates the (maximal) number of thread
35 dimensions in the grid. The elements of the single integer tuple
36 specify the number of threads in each dimension.
40 { kernel[0] -> tile[64,64]; kernel[i] -> block[16] : i != 4 }
42 specifies that in kernel 0, two loops should be tiled with a tile
43 size of 64 in both dimensions and that all kernels except kernel 4
44 should be run using a block of 16 threads.
46 Since PPCG performs some scheduling, it can be difficult to predict
47 what exactly will end up in a kernel. If you want to specify
48 tile, grid or block sizes, you may want to run PPCG first with the defaults,
49 examine the kernels and then run PPCG again with the desired sizes.