Skip to content

Commit

Permalink
Use contract_blis for outer products.
Browse files Browse the repository at this point in the history
  • Loading branch information
devinamatthews committed Jan 23, 2018
1 parent 3e8d3c9 commit bb65b50
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 32 deletions.
29 changes: 21 additions & 8 deletions Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ host_triplet = @host@
@ENABLE_SKX2_TRUE@am__append_22 = lib/libskx2.la
noinst_PROGRAMS = bin/test$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \
$(am__EXEEXT_3)
@ENABLE_BLAS_TRUE@am__append_23 = bin/bench #bin/batched_bench bin/dpd_bench
@ENABLE_BLAS_TRUE@am__append_23 = bin/bench bin/batched_bench #bin/dpd_bench
@ENABLE_BLAS_TRUE@@ENABLE_SKX1_TRUE@am__append_24 = bin/skx_bench
@ENABLE_BLAS_TRUE@@ENABLE_SKX1_FALSE@@ENABLE_SKX2_TRUE@am__append_25 = bin/skx_bench
subdir = .
Expand Down Expand Up @@ -388,14 +388,18 @@ lib_libzen_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
$(lib_libzen_la_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
-o $@
@ENABLE_ZEN_TRUE@am_lib_libzen_la_rpath =
@ENABLE_BLAS_TRUE@am__EXEEXT_1 = bin/bench$(EXEEXT)
@ENABLE_BLAS_TRUE@am__EXEEXT_1 = bin/bench$(EXEEXT) \
@ENABLE_BLAS_TRUE@ bin/batched_bench$(EXEEXT)
@ENABLE_BLAS_TRUE@@ENABLE_SKX1_TRUE@am__EXEEXT_2 = \
@ENABLE_BLAS_TRUE@@ENABLE_SKX1_TRUE@ bin/skx_bench$(EXEEXT)
@ENABLE_BLAS_TRUE@@ENABLE_SKX1_FALSE@@ENABLE_SKX2_TRUE@am__EXEEXT_3 = bin/skx_bench$(EXEEXT)
PROGRAMS = $(noinst_PROGRAMS)
am_bin_batched_bench_OBJECTS = test/batched_bench.$(OBJEXT)
bin_batched_bench_OBJECTS = $(am_bin_batched_bench_OBJECTS)
am__DEPENDENCIES_1 =
bin_batched_bench_DEPENDENCIES = lib/libtblis.la $(am__DEPENDENCIES_1)
am_bin_bench_OBJECTS = test/bench.$(OBJEXT)
bin_bench_OBJECTS = $(am_bin_bench_OBJECTS)
am__DEPENDENCIES_1 =
bin_bench_DEPENDENCIES = lib/libtblis.la $(am__DEPENDENCIES_1)
am_bin_skx_bench_OBJECTS = test/skx_bench.$(OBJEXT)
bin_skx_bench_OBJECTS = $(am_bin_skx_bench_OBJECTS)
Expand Down Expand Up @@ -468,8 +472,9 @@ SOURCES = $(lib_libbulldozer_la_SOURCES) $(lib_libcore2_la_SOURCES) \
$(lib_libreference_la_SOURCES) \
$(lib_libsandybridge_la_SOURCES) $(lib_libskx1_la_SOURCES) \
$(lib_libskx2_la_SOURCES) $(lib_libtblis_la_SOURCES) \
$(lib_libzen_la_SOURCES) $(bin_bench_SOURCES) \
$(bin_skx_bench_SOURCES) $(bin_test_SOURCES)
$(lib_libzen_la_SOURCES) $(bin_batched_bench_SOURCES) \
$(bin_bench_SOURCES) $(bin_skx_bench_SOURCES) \
$(bin_test_SOURCES)
DIST_SOURCES = $(am__lib_libbulldozer_la_SOURCES_DIST) \
$(am__lib_libcore2_la_SOURCES_DIST) \
$(am__lib_libexcavator_la_SOURCES_DIST) \
Expand All @@ -480,8 +485,9 @@ DIST_SOURCES = $(am__lib_libbulldozer_la_SOURCES_DIST) \
$(am__lib_libsandybridge_la_SOURCES_DIST) \
$(am__lib_libskx1_la_SOURCES_DIST) \
$(am__lib_libskx2_la_SOURCES_DIST) $(lib_libtblis_la_SOURCES) \
$(am__lib_libzen_la_SOURCES_DIST) $(bin_bench_SOURCES) \
$(bin_skx_bench_SOURCES) $(bin_test_SOURCES)
$(am__lib_libzen_la_SOURCES_DIST) $(bin_batched_bench_SOURCES) \
$(bin_bench_SOURCES) $(bin_skx_bench_SOURCES) \
$(bin_test_SOURCES)
RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
ctags-recursive dvi-recursive html-recursive info-recursive \
install-data-recursive install-dvi-recursive \
Expand Down Expand Up @@ -1619,12 +1625,18 @@ test/$(am__dirstamp):
test/$(DEPDIR)/$(am__dirstamp):
@$(MKDIR_P) test/$(DEPDIR)
@: > test/$(DEPDIR)/$(am__dirstamp)
test/bench.$(OBJEXT): test/$(am__dirstamp) \
test/batched_bench.$(OBJEXT): test/$(am__dirstamp) \
test/$(DEPDIR)/$(am__dirstamp)
bin/$(am__dirstamp):
@$(MKDIR_P) bin
@: > bin/$(am__dirstamp)

bin/batched_bench$(EXEEXT): $(bin_batched_bench_OBJECTS) $(bin_batched_bench_DEPENDENCIES) $(EXTRA_bin_batched_bench_DEPENDENCIES) bin/$(am__dirstamp)
@rm -f bin/batched_bench$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(bin_batched_bench_OBJECTS) $(bin_batched_bench_LDADD) $(LIBS)
test/bench.$(OBJEXT): test/$(am__dirstamp) \
test/$(DEPDIR)/$(am__dirstamp)

bin/bench$(EXEEXT): $(bin_bench_OBJECTS) $(bin_bench_DEPENDENCIES) $(EXTRA_bin_bench_DEPENDENCIES) bin/$(am__dirstamp)
@rm -f bin/bench$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(bin_bench_OBJECTS) $(bin_bench_LDADD) $(LIBS)
Expand Down Expand Up @@ -1851,6 +1863,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@src/util/$(DEPDIR)/env.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/util/$(DEPDIR)/random.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/util/$(DEPDIR)/thread.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/batched_bench.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/bench.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/skx_bench.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@test/$(DEPDIR)/test.Po@am__quote@
Expand Down
15 changes: 6 additions & 9 deletions src/internal/3t/dense/mult.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -130,10 +130,7 @@ void contract_blis(const communicator& comm, const config& cfg,
len_type n = ct.length(1);
len_type k = at.length(1);

if (comm.master())
{
flops += 2*m*n*k;
}
if (comm.master()) flops += 2*m*n*k;

int nt = comm.num_threads();
auto tc = make_gemm_thread_config<T>(cfg, nt, m, n, k);
Expand Down Expand Up @@ -574,11 +571,11 @@ void mult(const communicator& comm, const config& cfg,
beta, conj_C, C, stride_C_ABC);
break;
case HAS_AC+HAS_BC:
outer_prod_blas(comm, cfg, len_AC, len_BC,
alpha, conj_A, A, stride_A_AC,
conj_B, B, stride_B_BC,
beta, conj_C, C, stride_C_AC, stride_C_BC);
break;
// outer_prod_blas(comm, cfg, len_AC, len_BC,
// alpha, conj_A, A, stride_A_AC,
// conj_B, B, stride_B_BC,
// beta, conj_C, C, stride_C_AC, stride_C_BC);
// break;
//TODO: gemv
case HAS_AB+HAS_AC:
case HAS_AB+HAS_BC:
Expand Down
30 changes: 15 additions & 15 deletions test/batched_bench.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -317,21 +317,6 @@ int main(int argc, char** argv)
1.0, T3, "ABCIJK");
}

if (test4)
{
indexed_varray<double> T4;
indexed_varray<double> T3;
indexed_varray<double> W;

init(T4, "ABCD", "I===");
init(T3, "ABC", "I==");
init(W, "IJKA", "");

bench<double>(R, 1.0, T3, "ABCIJM",
W, "KLMD",
1.0, T4, "ABCDIJKL");
}

if (test3)
{
indexed_varray<double> T4;
Expand All @@ -347,6 +332,21 @@ int main(int argc, char** argv)
1.0, Z4, "ABCDIJKL");
}

if (test4)
{
indexed_varray<double> T4;
indexed_varray<double> T3;
indexed_varray<double> W;

init(T4, "ABCD", "I===");
init(T3, "ABC", "I==");
init(W, "IJKA", "");

bench<double>(R, 1.0, T3, "ABCIJM",
W, "KLMD",
1.0, T4, "ABCDIJKL");
}

if (test5)
{
indexed_varray<double> T3;
Expand Down

0 comments on commit bb65b50

Please sign in to comment.