示例#1
0
                      "const double* pb, "
                      "const double* pc);"][0 < prefetch]
             substitute["MNK_INTERFACE_LIST"] += (
                 "\nLIBXSMM_API void libxsmm_dmm_" + mnkstr +
                 "(const double* a, const double* b, double* c" +
                 pfsig)
         if (0 == precision):
             substitute["MNK_INTERFACE_LIST"] += "\n"
     if (mnklist and 0 != precision):
         substitute["MNK_INTERFACE_LIST"] += "\n"
     print(template.substitute(substitute))
 else:
     version, branch = \
         libxsmm_utilities.version_branch()
     major, minor, update, patch = \
         libxsmm_utilities.version_numbers(version)
     substitute = {
         "VERSION":  version,
         "BRANCH":   branch,
         "MAJOR":    major,
         "MINOR":    minor,
         "UPDATE":   update,
         "PATCH":    patch,
         "MNK_INTERFACE_LIST": ""
     }
     if (mnklist):
         substitute["MNK_INTERFACE_LIST"] += "\n"
         for mnk in mnklist:
             mnkstr = "_".join(map(str, mnk))
             if (0 == precision):
                 substitute["MNK_INTERFACE_LIST"] += (
示例#2
0
                 "const double* pb, "
                 "const double* pc);"
             ][0 < prefetch]
             substitute["MNK_INTERFACE_LIST"] += (
                 "\nLIBXSMM_API void libxsmm_dmm_" + mnkstr +
                 "(const double* a, const double* b, double* c" + pfsig)
         if (0 == precision):
             substitute["MNK_INTERFACE_LIST"] += "\n"
     if (mnklist and 0 != precision):
         substitute["MNK_INTERFACE_LIST"] += "\n"
     print(template.substitute(substitute))
 else:
     version, branch = \
         libxsmm_utilities.version_branch()
     major, minor, update, patch = \
         libxsmm_utilities.version_numbers(version)
     substitute = {
         "VERSION": version,
         "BRANCH": branch,
         "MAJOR": major,
         "MINOR": minor,
         "UPDATE": update,
         "PATCH": patch,
         "MNK_INTERFACE_LIST": ""
     }
     if (mnklist):
         substitute["MNK_INTERFACE_LIST"] += "\n"
         for mnk in mnklist:
             mnkstr = "_".join(map(str, mnk))
             if (0 == precision):
                 substitute["MNK_INTERFACE_LIST"] += (
示例#3
0
            jit = int(sys.argv[9])
        if 10 < argc:
            flags = int(sys.argv[10])
        if 11 < argc:
            alpha = int(sys.argv[11])
        if 12 < argc:
            beta = int(sys.argv[12])
        if 13 < argc:
            wrap = int(sys.argv[13])
        if 14 < argc:
            malloc = int(sys.argv[14])
        if 15 < argc:
            mnklist = sorted(libxsmm_utilities.load_mnklist(sys.argv[15:], 0))

        version, branch, realversion = libxsmm_utilities.version_branch()
        major, minor, update, patch = libxsmm_utilities.version_numbers(
            version)

        if 0 == threshold:
            threshold = 64 * 64 * 64
        maxmnk = libxsmm_utilities.max_mnk(mnklist, threshold)
        maxdim = int(maxmnk**(1.0 / 3.0) + 0.5)
        avgdim = int(0.5 * maxdim + 0.5)

        avgm = libxsmm_utilities.median(list(map(lambda mnk: mnk[0], mnklist)),
                                        avgdim, False)
        avgn = libxsmm_utilities.median(list(map(lambda mnk: mnk[1], mnklist)),
                                        avgdim, False)
        avgk = libxsmm_utilities.median(list(map(lambda mnk: mnk[2], mnklist)),
                                        avgdim, False)

        maxm = libxsmm_utilities.max_mnk(mnklist, avgdim, 0)
示例#4
0
        template = Template(open(filename, "r").read())
        maxmnk = libxsmm_utilities.max_mnk(mnklist, threshold)
        maxdim = int(maxmnk ** (1.0 / 3.0) + 0.5)
        avgdim = int(0.5 * maxdim + 0.5)

        avgm = libxsmm_utilities.median(list(map(lambda mnk: mnk[0], mnklist)), avgdim, False)
        avgn = libxsmm_utilities.median(list(map(lambda mnk: mnk[1], mnklist)), avgdim, False)
        avgk = libxsmm_utilities.median(list(map(lambda mnk: mnk[2], mnklist)), avgdim, False)

        maxm = libxsmm_utilities.max_mnk(mnklist, avgdim, 0)
        maxn = libxsmm_utilities.max_mnk(mnklist, avgdim, 1)
        maxk = libxsmm_utilities.max_mnk(mnklist, avgdim, 2)

        version, branch = libxsmm_utilities.version_branch()
        major, minor, update, patch = libxsmm_utilities.version_numbers(version)

        substitute = { \
            "VERSION":    version, \
            "BRANCH":     branch, \
            "MAJOR":      major, \
            "MINOR":      minor, \
            "UPDATE":     update, \
            "PATCH":      patch, \
            "ALIGNMENT":  alignment, \
            "ROW_MAJOR":  1 if (0 != row_major) else 0, \
            "COL_MAJOR":  0 if (0 != row_major) else 1, \
            "PREFETCH":   prefetch, \
            "MAX_MNK":    maxmnk, \
            "MAX_M":      maxm if (avgm < maxm) else maxdim, \
            "MAX_N":      maxn if (avgn < maxn) else maxdim, \