Skip to Content.
Sympa Menu

sm-commit - [SM-Commit] GIT changes to master grimoire by Peng Chang (Charles) (a560a7660578302f1b540cafe07aaa78155ea838)

sm-commit AT lists.ibiblio.org

Subject: Source Mage code commit list

List archive

Chronological Thread  
  • From: "Peng Chang \(Charles\)" <scm AT sourcemage.org>
  • To: sm-commit AT lists.ibiblio.org
  • Subject: [SM-Commit] GIT changes to master grimoire by Peng Chang (Charles) (a560a7660578302f1b540cafe07aaa78155ea838)
  • Date: Fri, 13 May 2011 10:48:26 -0500

GIT changes to master grimoire by Peng Chang (Charles) <chp AT sourcemage.org>:

cluster/atlas/BUILD | 9 --
cluster/atlas/CONFIGURE | 9 --
cluster/atlas/DETAILS | 1
cluster/atlas/HISTORY | 9 ++
cluster/atlas/PRE_BUILD | 5 +
cluster/atlas/emit_mm.patch | 154
++++++++++++++++++++++++++++++++++++++++++++
6 files changed, 169 insertions(+), 18 deletions(-)

New commits:
commit a560a7660578302f1b540cafe07aaa78155ea838
Author: Peng Chang (Charles) <chp AT sourcemage.org>
Commit: Peng Chang (Charles) <chp AT sourcemage.org>

atlas: actually add emit_mm.patch into git

commit 0b9f330535df76e4bc34b148cdbd54b067751dff
Author: Peng Chang (Charles) <chp AT sourcemage.org>
Commit: Peng Chang (Charles) <chp AT sourcemage.org>

atlas: PATCHLEVEL++

commit 4e6d12e587781d9f2ca871d0189c88f2b12b8e0f
Author: Peng Chang (Charles) <chp AT sourcemage.org>
Commit: Peng Chang (Charles) <chp AT sourcemage.org>

atlas: added a patch to fix wrong code generation during build

commit 09e5a9f4795468268fb72fbbe204f3959b467c6c
Author: Peng Chang (Charles) <chp AT sourcemage.org>
Commit: Peng Chang (Charles) <chp AT sourcemage.org>

atlas: append $OPTS to configure

commit 1ff8c6f2bd71f81a8d48210f04762dd347340653
Author: Peng Chang (Charles) <chp AT sourcemage.org>
Commit: Peng Chang (Charles) <chp AT sourcemage.org>

atlas: clean up ineffective options

diff --git a/cluster/atlas/BUILD b/cluster/atlas/BUILD
index e16378d..6935078 100755
--- a/cluster/atlas/BUILD
+++ b/cluster/atlas/BUILD
@@ -2,18 +2,11 @@ cd $SOURCE_DIRECTORY/bld &&
if is_depends_enabled $SPELL lapack; then
OPTS="--with-netlib-lapack=$INSTALL_ROOT/usr/lib/liblapack.a $OPTS"
fi &&
-if [ $WALL_TIMER == y ]; then
- if [[ ${SMGL_COMPAT_ARCHS[1]} == "ia32" || ${SMGL_COMPAT_ARCHS[1]} ==
"x86_64" ]]; then
- OPTS="-D c -DPentiumCPS=$CPU_FREQ $OPTS"
- else
- OPTS="-D c -DWALL $OPTS"
- fi
-fi &&

../configure -Si cputhrchk 0 \
-Fa alg -fPIC \
-b ${SMGL_COMPAT_ARCHS[0]} \
- --prefix=$INSTALL_ROOT/usr &&
+ --prefix=$INSTALL_ROOT/usr ${OPTS} &&
sedit '/RANLIB/s/echo/ranlib/' Make.inc &&

make_single &&
diff --git a/cluster/atlas/CONFIGURE b/cluster/atlas/CONFIGURE
index 72d9da5..13ae5e6 100755
--- a/cluster/atlas/CONFIGURE
+++ b/cluster/atlas/CONFIGURE
@@ -2,12 +2,3 @@ config_query SHARED_LIB "Do you want shared libraries to be
built?" y
if [ $SHARED_LIB == y ]; then
config_query PTSHARED_LIB "Do you want parallelized shared libraries to be
built?" y
fi
-
-config_query WALL_TIMER "Do you want to enable wall timer? (if your comupter
load is not high, this will provide a higher resolution timer)" y
-
-# Haven't tried with other archs than ia32 yet
-if [ $WALL_TIMER == y ]; then
- if [[ ${SMGL_COMPAT_ARCHS[1]} == "ia32" || ${SMGL_COMPAT_ARCHS[1]} ==
"x86_64" ]]; then
- config_query_string CPU_FREQ "What is your CPU frequency in MHz?" 1000
- fi
-fi
diff --git a/cluster/atlas/DETAILS b/cluster/atlas/DETAILS
index b6122a4..ba91f46 100755
--- a/cluster/atlas/DETAILS
+++ b/cluster/atlas/DETAILS
@@ -1,5 +1,6 @@
SPELL=atlas
VERSION=3.8.3
+ PATCHLEVEL=1
SOURCE=${SPELL}$VERSION.tar.bz2
SOURCE_DIRECTORY=$BUILD_DIRECTORY/ATLAS
SOURCE_URL[0]=$SOURCEFORGE_URL/math-atlas/$SOURCE
diff --git a/cluster/atlas/HISTORY b/cluster/atlas/HISTORY
index 2c2d89f..4c8c9d8 100644
--- a/cluster/atlas/HISTORY
+++ b/cluster/atlas/HISTORY
@@ -1,3 +1,12 @@
+2011-05-13 Peng Chang (Charles) <chp AT sourcemage.org>
+ * DETAILS: PATCHLEVEL++
+ * BUILD, CONFIGURE: clean up ineffective options
+ * BUILD: fixed a bug unnoticed for 2 years, appending ${OPTS} to the
end
+ of configure
+ * PRE_BUILD: applying upstream patch to fix code generation problems
+ during build
+ * emit_mm.patch: the above patch generated from upstream update
+
2009-05-17 Peng Chang (Charles) <chp516 AT gmail.com>
* BUILD: changed accordingly
* CONFIGURE: added this file to query various options
diff --git a/cluster/atlas/PRE_BUILD b/cluster/atlas/PRE_BUILD
index cc0a8ec..ce52e77 100755
--- a/cluster/atlas/PRE_BUILD
+++ b/cluster/atlas/PRE_BUILD
@@ -1,2 +1,5 @@
default_pre_build &&
-mkdir $SOURCE_DIRECTORY/bld
+mkdir $SOURCE_DIRECTORY/bld &&
+
+cd $SOURCE_DIRECTORY &&
+patch tune/blas/gemm/emit_mm.c $SPELL_DIRECTORY/emit_mm.patch
diff --git a/cluster/atlas/emit_mm.patch b/cluster/atlas/emit_mm.patch
new file mode 100644
index 0000000..0ce40f2
--- /dev/null
+++ b/cluster/atlas/emit_mm.patch
@@ -0,0 +1,154 @@
+Generated by Charles Peng <chp AT sourcemage.org>
+--- emit_mm.c 2009-02-19 02:48:25.000000000 +0800
++++ emit_mm.c 2011-05-13 16:21:41.491001028 +0800
+@@ -1,5 +1,5 @@
+ /*
+- * Automatically Tuned Linear Algebra Software v3.8.3
++ * Automatically Tuned Linear Algebra Software v3.8.4
+ * (C) Copyright 1997 R. Clint Whaley
+ *
+ * Redistribution and use in source and binary forms, with or without
+@@ -1638,7 +1638,7 @@ void MMDeclare(FILE *fpout, char *spc, c
+ cTA, cTB, M, N, K);
+ fprintf(fpout, " * lda=%d, ldb=%d, ldc=%d, mu=%d, nu=%d, ku=%d, pf=%d\n",
+ lda, ldb, ldc, mu, nu, ku, pfA);
+- fprintf(fpout, " * Generated by ATLAS/tune/blas/gemm/emit_mm.c
(3.8.3)\n");
++ fprintf(fpout, " * Generated by ATLAS/tune/blas/gemm/emit_mm.c
(3.8.4)\n");
+ fprintf(fpout, " */\n");
+ }
+
+@@ -3082,7 +3082,17 @@ int CompMultHandled(CLEANNODE *cp, int n
+ * Returns 1 if nb is handled by succeeding case, 0 otherwise
+ */
+ {
+- for (; cp; cp = cp->next) if (nb % cp->imult == 0) return(1);
++
++ for (; cp; cp = cp->next)
++ {
++ if (cp->fixed == 2)
++ {
++ if (cp->imult == nb)
++ return(1);
++ }
++ else if (nb % cp->imult == 0)
++ return(1);
++ }
+ return(0);
+ }
+
+@@ -3110,14 +3120,6 @@ int *GetCompNBs(enum CW which, CLEANNODE
+ istop = cp0->nb;
+ while (istop % cp0->imult) istop--;
+ if (istop == cp0->nb) istop -= cp0->imult;
+- for (cp=cp0->next; cp; cp = cp->next)
+- {
+- if (cp->imult % cp0->imult == 0 && cp->fixed != 2)
+- {
+- istop = cp->imult;
+- break;
+- }
+- }
+
+ for (i=2*cp0->imult; i <= istop; i += cp0->imult)
+ {
+@@ -3582,7 +3584,7 @@ void GenUpNB_if(char pre, enum CW which,
+ CLEANNODE *wp, *cp0;
+ FILE *fp;
+ int i;
+- const char *ifs = "else if", *ifp;
++ const char *ifs = "else if", *ifp, *sp;
+ const char cwh[3] = {'M', 'N', 'K'};
+ char ln[128], st[2], *typ;
+
+@@ -3613,7 +3615,11 @@ void GenUpNB_if(char pre, enum CW which,
+
+ if (pre == 'c') pre = 'C';
+ else if (pre == 'z') pre = 'Z';
+-
++/*
++ * fixed=2 means a kernel specialized for that exact N. They will have not
++ * survived pruning if they weren't better than all the general algorithms,
++ * so we can test for them all up front
++ */
+ for (cp=cp0; cp; cp = cp->next) /* handle fixed = 2 cases */
+ {
+ if (cp->fixed == 2)
+@@ -3625,36 +3631,49 @@ void GenUpNB_if(char pre, enum CW which,
+ ifp = ifs;
+ }
+ }
+-
+- for (cp=cp0; cp; cp = cp->next) /* fixed = 1 cases */
+- {
+- if (cp->fixed == 1)
+- {
+- for (i=cp->ncomps-1; i >= 0; i--)
+- {
+- if (cp->imult > 1)
+- fprintf(fp, " %s (%c == %d)\n", ifp, cwh[which],
cp->NBs[i]);
+- else fprintf(fp, " else\n");
+- fprintf(fp, " {\n ATL_%cup%cBmm%d_%d_%d_b%c%s;\n }\n",
+- pre, cwh[which], cp->NBs[i], cp->imult, cp->fixed,
+- cbeta, MMARGS);
+- ifp = ifs;
+- }
+- }
+- }
+- for (cp=cp0; cp; cp = cp->next) /* fixed = 0 cases */
+- {
++/*
++ * All remaining kernels are selected by being a multiple of imult;
++ * fixed=0 will be called directly, while fixed=1 will have a nested
++ * if to find the right compiled version to call
++ */
++ for (cp=cp0; cp; cp = cp->next) /* fixed = 0/1 cases */
++ {
++ if (cp->fixed != 1 && cp->fixed != 0)
++ continue;
++ if (cp->imult > 1)
++ fprintf(fp, " %s (%c == %s)\n", ifp, cwh[which],
++ GetInc(cp->imult, GetDiv(cp->imult, st)));
++ else if (ifp == ifs) fprintf(fp, " else\n");
+ if (cp->fixed == 0)
+ {
+- if (cp->imult > 1)
+- fprintf(fp, " %s (%c == %s)\n", ifp, cwh[which],
+- GetInc(cp->imult, GetDiv(cp->imult, st)));
+- else if (ifp == ifs) fprintf(fp, " else\n");
+ fprintf(fp, " {\n ATL_%cup%cBmm0_%d_%d_b%c%s;\n }\n",
+ pre, cwh[which], cp->imult, cp->fixed, cbeta, MMARGS);
+ ifp = ifs;
+ }
++ else if (cp->fixed == 1)
++ {
++ fprintf(fp, " {\n");
++ if (cp->ncomps == 1)
++ fprintf(fp, " ATL_%cup%cBmm%d_%d_%d_b%c%s;\n",
++ pre, cwh[which], cp->NBs[0], cp->imult, cp->fixed,
++ cbeta, MMARGS);
++ else /* must select kernel by NB[i] */
++ {
++ sp = "if";
++ for (i=cp->ncomps-1; i >= 0; i--)
++ {
++ fprintf(fp, " %s (%c == %d)\n", sp, cwh[which],
cp->NBs[i]);
++ fprintf(fp,
++ " {\n ATL_%cup%cBmm%d_%d_%d_b%c%s;\n }\n",
++ pre, cwh[which], cp->NBs[i], cp->imult, cp->fixed,
++ cbeta, MMARGS);
++ sp = "else if";
++ }
++ }
++ fprintf(fp, " }\n");
++ }
+ }
++
+ for (cp=cp0; cp && cp->imult != 1; cp = cp->next);
+ if (!cp)
+ {
+@@ -4330,3 +4349,5 @@ main(int nargs, char **args)
+ }
+ exit(0);
+ }
++
++



  • [SM-Commit] GIT changes to master grimoire by Peng Chang (Charles) (a560a7660578302f1b540cafe07aaa78155ea838), Peng Chang (Charles), 05/13/2011

Archive powered by MHonArc 2.6.24.

Top of Page