add knl-generic and knl-avx512 targets in alloy.py
This commit is contained in:
39
alloy.py
39
alloy.py
@@ -273,6 +273,18 @@ def build_LLVM(version_LLVM, revision, folder, tarball, debug, selfbuild, extra,
|
||||
try_do_LLVM("build LLVM and than install LLVM ", "msbuild INSTALL.vcxproj /V:m /p:Platform=Win32 /p:Configuration=Release /t:rebuild", from_validation)
|
||||
os.chdir(current_path)
|
||||
|
||||
|
||||
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"],
|
||||
"3.7":[],
|
||||
"trunk":[]}
|
||||
return prohibited_list[LLVM_VERSION]
|
||||
|
||||
|
||||
def check_targets():
|
||||
answer = []
|
||||
answer_generic = []
|
||||
@@ -288,12 +300,13 @@ def check_targets():
|
||||
try_do_LLVM("build check_ISA", cisa_compiler + " check_isa.cpp -o check_isa.exe", True)
|
||||
else:
|
||||
try_do_LLVM("build check_ISA", "cl check_isa.cpp", True)
|
||||
|
||||
SSE2 = ["sse2-i32x4", "sse2-i32x8"]
|
||||
SSE4 = ["sse4-i32x4", "sse4-i32x8", "sse4-i16x8", "sse4-i8x16"]
|
||||
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"]
|
||||
KNL = ["knl-generic", "knl-avx512"]
|
||||
|
||||
targets = [["AVX2", AVX2, False], ["AVX1.1", AVX11, False], ["AVX", AVX, False], ["SSE4", SSE4, False],
|
||||
["SSE2", SSE2, False], ["KNL", KNL, False]]
|
||||
@@ -332,7 +345,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"]]
|
||||
answer_sde = answer_sde + [["-knl", "knl-generic"], ["-knl", "knl-avx512"]]
|
||||
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]:
|
||||
@@ -608,20 +621,25 @@ def validation_run(only, only_targets, reference_branch, number, notify, update,
|
||||
build_ispc(LLVM[i], make)
|
||||
for j in range(0,len(targets)):
|
||||
stability.target = targets[j]
|
||||
# the target might be not supported by the chosen llvm version
|
||||
if (stability.target in unsupported_llvm_targets(LLVM[i])):
|
||||
print_debug("Warning: target " + stability.target + " is not supported in LLVM " + LLVM[i] + "\n", False, stability_log)
|
||||
continue
|
||||
|
||||
stability.wrapexe = ""
|
||||
# choosing right compiler for a given target
|
||||
# sometimes clang++ is not avaluable. if --ispc-build-compiler = gcc we will pass in g++ compiler
|
||||
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" in targets[j]):
|
||||
if ("knc" in targets[j]) or ("knl-generic" in targets[j]) or ("knl-avx512" 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" in targets[j]:
|
||||
elif ("knl-generic" in targets[j]) or ("knl-avx512" in targets[j]):
|
||||
arch = knl_archs
|
||||
else:
|
||||
arch = archs
|
||||
@@ -640,10 +658,15 @@ def validation_run(only, only_targets, reference_branch, number, notify, update,
|
||||
print_version = 0
|
||||
for j in range(0,len(sde_targets)):
|
||||
stability.target = sde_targets[j][1]
|
||||
# the target might be not supported by the chosen llvm version
|
||||
if (stability.target in unsupported_llvm_targets(LLVM[i])):
|
||||
print_debug("Warning: target " + stability.target + " is not supported in LLVM " + LLVM[i] + "\n", False, stability_log)
|
||||
continue
|
||||
|
||||
stability.wrapexe = os.environ["SDE_HOME"] + "/sde " + sde_targets[j][0] + " -- "
|
||||
if "knc" in stability.target:
|
||||
arch = knc_archs
|
||||
elif "knl" in stability.target:
|
||||
elif ("knl-generic" in stability.target) or ("knl-avx512" in stability.target):
|
||||
arch = knl_archs
|
||||
else:
|
||||
arch = archs
|
||||
@@ -902,7 +925,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'\n")
|
||||
"Test KNL target (requires sde)\n\talloy.py -r --only='stability' --only-targets='knl-generic knl-avx512'\n")
|
||||
|
||||
num_threads="%s" % multiprocessing.cpu_count()
|
||||
parser = MyParser(usage="Usage: alloy.py -r/-b [options]", epilog=examples)
|
||||
@@ -952,8 +975,8 @@ if __name__ == '__main__':
|
||||
run_group.add_option('--update-errors', dest='update',
|
||||
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.',
|
||||
default="")
|
||||
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="")
|
||||
run_group.add_option('--time', dest='time',
|
||||
help='display time of testing', default=False, action='store_true')
|
||||
run_group.add_option('--only', dest='only',
|
||||
|
||||
Reference in New Issue
Block a user