Merge pull request #1049 from ncos/knl-rename

ISPC target rename plus insignificant changes in test system
This commit is contained in:
Dmitry Babokin
2015-05-28 18:42:21 +03:00
5 changed files with 51 additions and 60 deletions

View File

@@ -290,11 +290,11 @@ def build_LLVM(version_LLVM, revision, folder, tarball, debug, selfbuild, extra,
def unsupported_llvm_targets(LLVM_VERSION):
prohibited_list = {"3.2":["knl-avx512"],
"3.3":["knl-avx512"],
"3.4":["knl-avx512"],
"3.5":["knl-avx512"],
"3.6":["knl-avx512"],
prohibited_list = {"3.2":["avx512knl-i32x16"],
"3.3":["avx512knl-i32x16"],
"3.4":["avx512knl-i32x16"],
"3.5":["avx512knl-i32x16"],
"3.6":["avx512knl-i32x16"],
"3.7":[],
"trunk":[]}
return prohibited_list[LLVM_VERSION]
@@ -321,7 +321,7 @@ def check_targets():
AVX = ["avx1-i32x4", "avx1-i32x8", "avx1-i32x16", "avx1-i64x4"]
AVX11 = ["avx1.1-i32x8","avx1.1-i32x16","avx1.1-i64x4"]
AVX2 = ["avx2-i32x8", "avx2-i32x16", "avx2-i64x4"]
KNL = ["knl-generic", "knl-avx512"]
KNL = ["knl-generic", "avx512knl-i32x16"]
targets = [["AVX2", AVX2, False], ["AVX1.1", AVX11, False], ["AVX", AVX, False], ["SSE4", SSE4, False],
["SSE2", SSE2, False], ["KNL", KNL, False]]
@@ -349,7 +349,7 @@ def check_targets():
f_lines = take_lines(sde_exists + " -help", "all")
for i in range(0,len(f_lines)):
if targets[5][2] == False and "knl" in f_lines[i]:
answer_sde = answer_sde + [["-knl", "knl-generic"], ["-knl", "knl-avx512"]]
answer_sde = answer_sde + [["-knl", "knl-generic"], ["-knl", "avx512knl-i32x16"]]
if targets[3][2] == False and "wsm" in f_lines[i]:
answer_sde = answer_sde + [["-wsm", "sse4-i32x4"], ["-wsm", "sse4-i32x8"], ["-wsm", "sse4-i16x8"], ["-wsm", "sse4-i8x16"]]
if targets[2][2] == False and "snb" in f_lines[i]:
@@ -636,14 +636,14 @@ def validation_run(only, only_targets, reference_branch, number, notify, update,
if options.ispc_build_compiler == "gcc":
stability.compiler_exe = "g++"
# but 'knc/knl' target is supported only by icpc, so set explicitly
if ("knc" in targets[j]) or ("knl-generic" in targets[j]) or ("knl-avx512" in targets[j]):
if ("knc" in targets[j]) or ("knl-generic" in targets[j]):
stability.compiler_exe = "icpc"
# now set archs for targets
if "generic" in targets[j]:
arch = gen_archs
elif "knc" in targets[j]:
arch = knc_archs
elif ("knl-generic" in targets[j]) or ("knl-avx512" in targets[j]):
elif ("knl-generic" in targets[j]) or ("avx512knl-i32x16" in targets[j]):
arch = knl_archs
else:
arch = archs
@@ -670,7 +670,7 @@ def validation_run(only, only_targets, reference_branch, number, notify, update,
stability.wrapexe = get_sde() + " " + sde_targets[j][0] + " -- "
if "knc" in stability.target:
arch = knc_archs
elif ("knl-generic" in stability.target) or ("knl-avx512" in stability.target):
elif ("knl-generic" in stability.target) or ("avx512knl-i32x16" in stability.target):
arch = knl_archs
else:
arch = archs
@@ -929,7 +929,7 @@ if __name__ == '__main__':
"Performance validation run with 10 runs of each test and comparing to branch 'old'\n\talloy.py -r --only=performance --compare-with=old --number=10\n" +
"Validation run. Update fail_db.txt with new fails, send results to my@my.com\n\talloy.py -r --update-errors=F --notify='my@my.com'\n" +
"Test KNC target (not tested when tested all supported targets, so should be set explicitly via --only-targets)\n\talloy.py -r --only='stability' --only-targets='knc'\n" +
"Test KNL target (requires sde)\n\talloy.py -r --only='stability' --only-targets='knl-generic knl-avx512'\n")
"Test KNL target (requires sde)\n\talloy.py -r --only='stability' --only-targets='knl-generic avx512knl-i32x16'\n")
num_threads="%s" % multiprocessing.cpu_count()
parser = MyParser(usage="Usage: alloy.py -r/-b [options]", epilog=examples)
@@ -980,7 +980,7 @@ if __name__ == '__main__':
help='rewrite fail_db.txt file according to received results (F or FP)', default="")
run_group.add_option('--only-targets', dest='only_targets',
help='set list of targets to test. Possible values - all subnames of targets, plus "knc" for "generic" ' +
'version of knc support, "knl-generic" or "knl-avx512" for "generic"/"native" knl support', default="")
'version of knc support, "knl-generic" or "avx512knl-i32x16" for "generic"/"native" knl support', default="")
run_group.add_option('--time', dest='time',
help='display time of testing', default=False, action='store_true')
run_group.add_option('--only', dest='only',

View File

@@ -126,7 +126,7 @@ lGetSystemISA() {
else if ((info2[1] & (1 << 26)) != 0 && // AVX512 PF
(info2[1] & (1 << 27)) != 0 && // AVX512 ER
(info2[1] & (1 << 28)) != 0) { // AVX512 CDI
return "KNL_AVX512";
return "KNL";
}
// If it's unknown AVX512 target, fall through and use AVX2
// or whatever is available in the machine.

View File

@@ -166,26 +166,26 @@
./tests/ptr-19.ispc runfail x86-64 generic-16 Linux LLVM 3.7 clang++3.4 -O0 *
./tests/ptr-22.ispc runfail x86-64 generic-16 Linux LLVM 3.7 clang++3.4 -O0 *
./tests/test-143.ispc runfail x86-64 generic-16 Linux LLVM 3.7 clang++3.4 -O0 *
./tests/acos.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O2 *
./tests/asin.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O2 *
./tests/load-int16-1.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O2 *
./tests/load-int8-1.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O2 *
./tests/operators2.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O2 *
./tests/packed-store-1.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O2 *
./tests/packed-store2-1.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O2 *
./tests/short-circuit-14.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O2 *
./tests/short-circuit-15.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O2 *
./tests/short-vec-5.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O2 *
./tests/short-vec-6.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O2 *
./tests/transcendentals-2-1.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O2 *
./tests/transcendentals-2-2.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O2 *
./tests/transcendentals-2-3.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O2 *
./tests/acos.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O0 *
./tests/asin.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O0 *
./tests/short-circuit-14.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O0 *
./tests/short-circuit-15.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O0 *
./tests/short-circuit-5.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O0 *
./tests/short-circuit-6.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O0 *
./tests/short-circuit-7.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O0 *
./tests/short-circuit-8.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O0 *
./tests/short-circuit-9.ispc runfail x86-64 knl-avx512 Linux LLVM 3.7 icpc15.0 -O0 *
./tests/acos.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O2 *
./tests/asin.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O2 *
./tests/load-int16-1.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O2 *
./tests/load-int8-1.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O2 *
./tests/operators2.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O2 *
./tests/packed-store-1.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O2 *
./tests/packed-store2-1.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O2 *
./tests/short-circuit-14.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O2 *
./tests/short-circuit-15.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O2 *
./tests/short-vec-5.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O2 *
./tests/short-vec-6.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O2 *
./tests/transcendentals-2-1.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O2 *
./tests/transcendentals-2-2.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O2 *
./tests/transcendentals-2-3.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O2 *
./tests/acos.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O0 *
./tests/asin.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O0 *
./tests/short-circuit-14.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O0 *
./tests/short-circuit-15.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O0 *
./tests/short-circuit-5.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O0 *
./tests/short-circuit-6.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O0 *
./tests/short-circuit-7.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O0 *
./tests/short-circuit-8.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O0 *
./tests/short-circuit-9.ispc runfail x86-64 avx512knl-i32x16 Linux LLVM 3.7 clang++3.7 -O0 *

View File

@@ -170,7 +170,7 @@ lGetSystemISA() {
else if ((info2[1] & (1 << 26)) != 0 && // AVX512 PF
(info2[1] & (1 << 27)) != 0 && // AVX512 ER
(info2[1] & (1 << 28)) != 0) { // AVX512 CDI
return "knl-avx512";
return "avx512knl-i32x16";
}
// If it's unknown AVX512 target, fall through and use AVX2
// or whatever is available in the machine.
@@ -509,7 +509,7 @@ Target::Target(const char *arch, const char *cpu, const char *isa, bool pic, boo
#if !defined(LLVM_3_2) && !defined(LLVM_3_3) && !defined(LLVM_3_4) && !defined(LLVM_3_5) && !defined(LLVM_3_6)// LLVM 3.7+
case CPU_KNL:
isa = "knl-avx512";
isa = "avx512knl-i32x16";
break;
#endif
@@ -892,7 +892,7 @@ Target::Target(const char *arch, const char *cpu, const char *isa, bool pic, boo
CPUfromISA = CPU_Haswell;
}
#if !defined(LLVM_3_2) && !defined(LLVM_3_3) && !defined(LLVM_3_4) && !defined(LLVM_3_5) && !defined(LLVM_3_6)// LLVM 3.7+
else if (!strcasecmp(isa, "knl-avx512")) {
else if (!strcasecmp(isa, "avx512knl-i32x16")) {
this->m_isa = Target::KNL_AVX512;
this->m_nativeVectorWidth = 16;
this->m_nativeVectorAlignment = 64;
@@ -1132,13 +1132,13 @@ Target::SupportedTargets() {
"sse4-i32x4, sse4-i32x8, sse4-i16x8, sse4-i8x16, "
"avx1-i32x4, "
"avx1-i32x8, avx1-i32x16, avx1-i64x4, "
"avx1.1-i32x8, avx1.1-i32x16, avx1.1-i64x4 "
"avx1.1-i32x8, avx1.1-i32x16, avx1.1-i64x4, "
"avx2-i32x8, avx2-i32x16, avx2-i64x4, "
"generic-x1, generic-x4, generic-x8, generic-x16, "
"generic-x32, generic-x64, *-generic-x16, "
#if !defined(LLVM_3_2) && !defined(LLVM_3_3) && !defined(LLVM_3_4) && !defined(LLVM_3_5) && !defined(LLVM_3_6)// LLVM 3.7+
"knl-avx512"
"avx512knl-i32x16, "
#endif
"generic-x1, generic-x4, generic-x8, generic-x16, "
"generic-x32, generic-x64, *-generic-x16"
#ifdef ISPC_ARM_ENABLED
", neon-i8x16, neon-i16x8, neon-i32x4"
#endif
@@ -1209,7 +1209,7 @@ Target::ISAToString(ISA isa) {
return "avx2";
#if !defined(LLVM_3_2) && !defined(LLVM_3_3) && !defined(LLVM_3_4) && !defined(LLVM_3_5) && !defined(LLVM_3_6)// LLVM 3.7+
case Target::KNL_AVX512:
return "knl-avx512";
return "avx512knl-i32x16";
#endif
case Target::SKX:
return "skx";
@@ -1257,7 +1257,7 @@ Target::ISAToTargetString(ISA isa) {
return "avx2-i32x8";
#if !defined(LLVM_3_2) && !defined(LLVM_3_3) && !defined(LLVM_3_4) && !defined(LLVM_3_5) && !defined(LLVM_3_6)// LLVM 3.7+
case Target::KNL_AVX512:
return "knl-avx512";
return "avx512knl-i32x16";
#endif
case Target::SKX:
return "avx2";

View File

@@ -270,8 +270,8 @@ def run_test(testname):
elif (options.target == "knl-generic"):
cc_cmd = "%s -O2 -I. %s %s test_static.cpp -DTEST_SIG=%d %s -o %s" % \
(options.compiler_exe, gcc_arch, "-xMIC-AVX512", match, obj_name, exe_name)
elif (options.target == "knl-avx512"):
cc_cmd = "%s -O2 -I. %s %s test_static.cpp -DTEST_SIG=%d %s -o %s" % \
elif (options.target == "avx512knl-i32x16"):
cc_cmd = "%s -O2 -I. %s %s test_static.cpp -DTEST_SIG=%d %s -o %s" % \
(options.compiler_exe, gcc_arch, "-march=knl", match, obj_name, exe_name)
else:
cc_cmd = "%s -O2 -I. %s %s test_static.cpp -DTEST_SIG=%d %s -o %s" % \
@@ -558,7 +558,7 @@ def verify():
"sse4-i8x16", "avx1-i32x4" "avx1-i32x8", "avx1-i32x16", "avx1-i64x4", "avx1.1-i32x8",
"avx1.1-i32x16", "avx1.1-i64x4", "avx2-i32x8", "avx2-i32x16", "avx2-i64x4",
"generic-1", "generic-4", "generic-8",
"generic-16", "generic-32", "generic-64", "knc", "knl-generic", "knl-avx512"]]
"generic-16", "generic-32", "generic-64", "knc", "knl-generic", "avx512knl-i32x16"]]
for i in range (0,len(f_lines)):
if f_lines[i][0] == "%":
continue
@@ -671,8 +671,6 @@ def run_tests(options1, args, print_version):
options.compiler_exe = "icpc"
elif (options.target == "knl-generic"):
options.compiler_exe = "icpc"
elif (options.target == "knl-avx512"):
options.compiler_exe = "icpc"
elif is_windows:
options.compiler_exe = "cl.exe"
else:
@@ -911,7 +909,7 @@ if __name__ == "__main__":
parser.add_option('-t', '--target', dest='target',
help=('Set compilation target (sse2-i32x4, sse2-i32x8, sse4-i32x4, sse4-i32x8, ' +
'sse4-i16x8, sse4-i8x16, avx1-i32x8, avx1-i32x16, avx1.1-i32x8, avx1.1-i32x16, ' +
'avx2-i32x8, avx2-i32x16, generic-x1, generic-x4, generic-x8, generic-x16, ' +
'avx2-i32x8, avx2-i32x16, avx512knl-i32x16, generic-x1, generic-x4, generic-x8, generic-x16, ' +
'generic-x32, generic-x64, knc, knl-generic)'), default="sse4")
parser.add_option('-a', '--arch', dest='arch',
help='Set architecture (arm, x86, x86-64)',default="x86-64")
@@ -924,8 +922,8 @@ if __name__ == "__main__":
parser.add_option('-v', '--verbose', dest='verbose', help='Enable verbose output',
default=False, action="store_true")
parser.add_option('--wrap-exe', dest='wrapexe',
help='Executable to wrap test runs with (e.g. "valgrind")',
default="")
help='Executable to wrap test runs with (e.g. "valgrind" or "sde -knl -- ")',
default="")
parser.add_option('--time', dest='time', help='Enable time output',
default=False, action="store_true")
parser.add_option('--non-interactive', dest='non_interactive', help='Disable interactive status updates',
@@ -939,12 +937,5 @@ if __name__ == "__main__":
default=False, action="store_true")
(options, args) = parser.parse_args()
# Untill we have the hardware to run testing on:
if ((options.target == "knl-generic") and (options.wrapexe == "")):
options.wrapexe = "sde -knl -- "
if ((options.target == "knl-avx512") and (options.wrapexe == "")):
options.wrapexe = "sde -knl -- "
L = run_tests(options, args, 1)
exit(0)