Skip to content
Snippets Groups Projects

Fork reshape

Merged Aaron Councilman requested to merge fork-reshape into main
3 files
+ 23
3
Compare changes
  • Side-by-side
  • Inline
Files
3
@@ -46,16 +46,15 @@ associative(matmul@outer);
@@ -46,16 +46,15 @@ associative(matmul@outer);
// Parallelize by computing output array as 16 chunks
// Parallelize by computing output array as 16 chunks
let par = matmul@outer \ matmul@inner;
let par = matmul@outer \ matmul@inner;
fork-tile![4](par);
fork-tile![4](par);
let res = fork-reshape[[1, 3], [0], [2]](par); let outer = res.0; let inner = res.1;
let (outer, inner, _) = fork-reshape[[1, 3], [0], [2]](par);
parallelize!(outer \ inner);
parallelize!(outer \ inner);
let body = outline(inner);
let body = outline(inner);
cpu(body);
cpu(body);
// Tile for cache, assuming 64B cache lines
// Tile for cache, assuming 64B cache lines
fork-split(body);
fork-tile![16](body);
fork-tile![16](body);
let res = fork-reshape[[0, 2, 4, 1, 3], [5]](body); let outer = res.0; let inner = res.1;
let (outer, inner) = fork-reshape[[0, 2, 4, 1, 3], [5]](body);
reduce-slf(inner);
reduce-slf(inner);
unforkify!(body);
unforkify!(body);
Loading