diff options
author | Roman Gareev <gareevroman@gmail.com> | 2016-06-22 09:52:37 +0000 |
---|---|---|
committer | Roman Gareev <gareevroman@gmail.com> | 2016-06-22 09:52:37 +0000 |
commit | 42402c9e89e419468096d329872370e79adf6114 (patch) | |
tree | 839ece9659112ea63ae9ea66d4db76daaa7fe0b7 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
parent | 50b80359c0cf3b175b7dbed8cf94b4dccdb349c6 (diff) | |
download | llvm-42402c9e89e419468096d329872370e79adf6114.zip llvm-42402c9e89e419468096d329872370e79adf6114.tar.gz llvm-42402c9e89e419468096d329872370e79adf6114.tar.bz2 |
Apply all necessary tilings and unrollings to get a micro-kernel
This is the first patch to apply the BLIS matmul optimization pattern
on matmul kernels
(http://www.cs.utexas.edu/users/flame/pubs/TOMS-BLIS-Analytical.pdf).
BLIS implements gemm as three nested loops around a macro-kernel,
plus two packing routines. The macro-kernel is implemented in terms
of two additional loops around a micro-kernel. The micro-kernel
is a loop around a rank-1 (i.e., outer product) update.
In this change we create the BLIS micro-kernel by applying
a combination of tiling and unrolling. In subsequent changes
we will add the extraction of the BLIS macro-kernel
and implement the packing transformation.
Contributed-by: Roman Gareev <gareevroman@gmail.com>
Reviewed-by: Tobias Grosser <tobias@grosser.es>
Differential Revision: http://reviews.llvm.org/D21140
llvm-svn: 273397
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions