diff --git a/alloy.py b/alloy.py index 3f7b57b0..813b3cd4 100755 --- a/alloy.py +++ b/alloy.py @@ -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]) or ("avx512knl-i32x16" 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', diff --git a/fail_db.txt b/fail_db.txt index 2029c5dc..ecbb2dbc 100644 --- a/fail_db.txt +++ b/fail_db.txt @@ -166,26 +166,3 @@ ./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 * diff --git a/ispc.cpp b/ispc.cpp index 7aa60989..648cbd27 100644 --- a/ispc.cpp +++ b/ispc.cpp @@ -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; @@ -1137,7 +1137,7 @@ Target::SupportedTargets() { "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 #ifdef ISPC_ARM_ENABLED ", neon-i8x16, neon-i16x8, neon-i32x4" @@ -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"; diff --git a/run_tests.py b/run_tests.py index f55a3c3d..cdb1aa14 100755 --- a/run_tests.py +++ b/run_tests.py @@ -270,7 +270,7 @@ 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"): + 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: @@ -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,7 +671,7 @@ 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"): + elif (options.target == "avx512knl-i32x16"): options.compiler_exe = "icpc" elif is_windows: options.compiler_exe = "cl.exe" @@ -943,7 +943,7 @@ if __name__ == "__main__": if ((options.target == "knl-generic") and (options.wrapexe == "")): options.wrapexe = "sde -knl -- " - if ((options.target == "knl-avx512") and (options.wrapexe == "")): + if ((options.target == "avx512knl-i32x16") and (options.wrapexe == "")): options.wrapexe = "sde -knl -- " L = run_tests(options, args, 1)