mirror of
https://github.com/csukuangfj/kaldifeat.git
synced 2025-08-09 18:12:17 +00:00
301 lines
9.9 KiB
Python
Executable File
301 lines
9.9 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# Copyright 2022 Xiaomi Corp. (authors: Fangjun Kuang)
|
|
|
|
import argparse
|
|
import json
|
|
|
|
|
|
def version_ge(a, b):
|
|
a_major, a_minor = list(map(int, a.split(".")))[:2]
|
|
b_major, b_minor = list(map(int, b.split(".")))[:2]
|
|
if a_major > b_major:
|
|
return True
|
|
|
|
if a_major == b_major and a_minor >= b_minor:
|
|
return True
|
|
|
|
return False
|
|
|
|
|
|
def get_args():
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument(
|
|
"--enable-cuda",
|
|
action="store_true",
|
|
default=False,
|
|
help="True to enable CUDA",
|
|
)
|
|
|
|
parser.add_argument(
|
|
"--for-windows",
|
|
action="store_true",
|
|
default=False,
|
|
help="True for windows",
|
|
)
|
|
|
|
parser.add_argument(
|
|
"--for-macos",
|
|
action="store_true",
|
|
default=False,
|
|
help="True for macOS",
|
|
)
|
|
|
|
parser.add_argument(
|
|
"--test-only-latest-torch",
|
|
action="store_true",
|
|
default=False,
|
|
help="""If True, we test only the latest PyTroch
|
|
to reduce CI running time.""",
|
|
)
|
|
return parser.parse_args()
|
|
|
|
|
|
def generate_build_matrix(enable_cuda, for_windows, for_macos, test_only_latest_torch):
|
|
matrix = {
|
|
# 1.5.x is removed because there are compilation errors.
|
|
# See
|
|
# https://github.com/csukuangfj/k2/runs/2533830771?check_suite_focus=true
|
|
# and
|
|
# https://github.com/NVIDIA/apex/issues/805
|
|
# "1.5.0": {
|
|
# "python-version": ["3.6", "3.7", "3.8"],
|
|
# "cuda": ["10.1", "10.2"],
|
|
# },
|
|
# "1.5.1": {
|
|
# "python-version": ["3.6", "3.7", "3.8"],
|
|
# "cuda": ["10.1", "10.2"],
|
|
# },
|
|
# "1.6.0": {
|
|
# "python-version": ["3.6", "3.7", "3.8"],
|
|
# "cuda": ["10.1", "10.2"] if not for_windows else ["10.1.243", "10.2.89"],
|
|
# },
|
|
"1.7.0": {
|
|
"python-version": ["3.6", "3.7", "3.8"],
|
|
"cuda": ["10.1", "10.2", "11.0"]
|
|
if not for_windows
|
|
else ["10.1.243", "10.2.89", "11.0.3"],
|
|
},
|
|
"1.7.1": {
|
|
"python-version": ["3.6", "3.7", "3.8", "3.9"],
|
|
"cuda": ["10.1", "10.2", "11.0"]
|
|
if not for_windows
|
|
else ["10.1.243", "10.2.89", "11.0.3"],
|
|
},
|
|
"1.8.0": {
|
|
"python-version": ["3.6", "3.7", "3.8", "3.9"],
|
|
"cuda": ["10.1", "10.2", "11.1"]
|
|
if not for_windows
|
|
else ["10.1.243", "10.2.89", "11.1.1"],
|
|
},
|
|
"1.8.1": {
|
|
"python-version": ["3.6", "3.7", "3.8", "3.9"],
|
|
"cuda": ["10.1", "10.2", "11.1"]
|
|
if not for_windows
|
|
else ["10.1.243", "10.2.89", "11.1.1"],
|
|
},
|
|
"1.9.0": {
|
|
"python-version": ["3.6", "3.7", "3.8", "3.9"],
|
|
"cuda": ["10.2", "11.1"] if not for_windows else ["10.2.89", "11.1.1"],
|
|
},
|
|
"1.9.1": {
|
|
"python-version": ["3.6", "3.7", "3.8", "3.9"],
|
|
"cuda": ["10.2", "11.1"] if not for_windows else ["10.2.89", "11.1.1"],
|
|
},
|
|
"1.10.0": {
|
|
"python-version": ["3.6", "3.7", "3.8", "3.9"],
|
|
"cuda": ["10.2", "11.1", "11.3"]
|
|
if not for_windows
|
|
else ["10.2.89", "11.1.1", "11.3.1"],
|
|
},
|
|
"1.10.1": {
|
|
"python-version": ["3.6", "3.7", "3.8", "3.9"],
|
|
"cuda": ["10.2", "11.1", "11.3"]
|
|
if not for_windows
|
|
else ["10.2.89", "11.1.1", "11.3.1"],
|
|
},
|
|
"1.10.2": {
|
|
"python-version": ["3.6", "3.7", "3.8", "3.9"],
|
|
"cuda": ["10.2", "11.1", "11.3"]
|
|
if not for_windows
|
|
else ["10.2.89", "11.1.1", "11.3.1"],
|
|
},
|
|
"1.11.0": {
|
|
"python-version": ["3.7", "3.8", "3.9", "3.10"],
|
|
"cuda": ["10.2", "11.3", "11.5"]
|
|
if not for_windows
|
|
else ["11.3.1", "11.5.2"],
|
|
},
|
|
"1.12.0": {
|
|
"python-version": ["3.7", "3.8", "3.9", "3.10"],
|
|
"cuda": ["10.2", "11.3", "11.6"]
|
|
if not for_windows
|
|
else ["11.3.1", "11.6.2"],
|
|
},
|
|
"1.12.1": {
|
|
"python-version": ["3.7", "3.8", "3.9", "3.10"],
|
|
"cuda": ["10.2", "11.3", "11.6"]
|
|
if not for_windows
|
|
else ["11.3.1", "11.6.2"],
|
|
},
|
|
"1.13.0": {
|
|
"python-version": ["3.7", "3.8", "3.9", "3.10", "3.11"],
|
|
"cuda": ["11.6", "11.7"], # default 11.7
|
|
},
|
|
"1.13.1": {
|
|
"python-version": ["3.7", "3.8", "3.9", "3.10", "3.11"],
|
|
"cuda": ["11.6", "11.7"] # default 11.7
|
|
if not for_windows
|
|
else ["11.6.2", "11.7.1"],
|
|
},
|
|
"2.0.0": {
|
|
"python-version": ["3.8", "3.9", "3.10", "3.11"],
|
|
"cuda": ["11.7", "11.8"] # default 11.7
|
|
if not for_windows
|
|
else ["11.7.1", "11.8.0"],
|
|
},
|
|
"2.0.1": {
|
|
"python-version": ["3.8", "3.9", "3.10", "3.11"],
|
|
"cuda": ["11.7", "11.8"] # default 11.7
|
|
if not for_windows
|
|
else ["11.7.1", "11.8.0"],
|
|
},
|
|
"2.1.0": {
|
|
"python-version": ["3.8", "3.9", "3.10", "3.11"],
|
|
"cuda": ["11.8", "12.1"] # default 12.1
|
|
if not for_windows
|
|
else ["11.8.0", "12.1.0"],
|
|
},
|
|
"2.1.1": {
|
|
"python-version": ["3.8", "3.9", "3.10", "3.11"],
|
|
"cuda": ["11.8", "12.1"] # default 12.1
|
|
if not for_windows
|
|
else ["11.8.0", "12.1.0"],
|
|
},
|
|
"2.1.2": {
|
|
"python-version": ["3.8", "3.9", "3.10", "3.11"],
|
|
"cuda": ["11.8", "12.1"] # default 12.1
|
|
if not for_windows
|
|
else ["11.8.0", "12.1.0"],
|
|
},
|
|
"2.2.0": {
|
|
"python-version": ["3.8", "3.9", "3.10", "3.11", "3.12"],
|
|
"cuda": ["11.8", "12.1"] # default 12.1
|
|
if not for_windows
|
|
else ["11.8.0", "12.1.0"],
|
|
},
|
|
"2.2.1": {
|
|
"python-version": ["3.8", "3.9", "3.10", "3.11", "3.12"],
|
|
"cuda": ["11.8", "12.1"] # default 12.1
|
|
if not for_windows
|
|
else ["11.8.0", "12.1.0"],
|
|
},
|
|
"2.2.2": {
|
|
"python-version": ["3.8", "3.9", "3.10", "3.11", "3.12"],
|
|
"cuda": ["11.8", "12.1"] # default 12.1
|
|
if not for_windows
|
|
else ["11.8.0", "12.1.0"],
|
|
},
|
|
"2.3.0": {
|
|
"python-version": ["3.8", "3.9", "3.10", "3.11", "3.12"],
|
|
"cuda": ["11.8", "12.1"] # default 12.1
|
|
if not for_windows
|
|
else ["11.8.0", "12.1.0"],
|
|
},
|
|
"2.3.1": {
|
|
"python-version": ["3.8", "3.9", "3.10", "3.11", "3.12"],
|
|
"cuda": ["11.8", "12.1"] # default 12.1
|
|
if not for_windows
|
|
else ["11.8.0", "12.1.0"],
|
|
},
|
|
"2.4.0": {
|
|
"python-version": ["3.8", "3.9", "3.10", "3.11", "3.12"],
|
|
"cuda": ["11.8", "12.1", "12.4"] # default 12.1
|
|
if not for_windows
|
|
else ["11.8.0", "12.1.0", "12.4.0"],
|
|
},
|
|
# https://github.com/Jimver/cuda-toolkit/blob/master/src/links/windows-links.ts
|
|
}
|
|
if test_only_latest_torch:
|
|
latest = "2.4.0"
|
|
matrix = {latest: matrix[latest]}
|
|
|
|
if for_windows or for_macos:
|
|
if "1.13.0" in matrix:
|
|
matrix["1.13.0"]["python-version"].remove("3.11")
|
|
|
|
if "1.13.1" in matrix:
|
|
matrix["1.13.1"]["python-version"].remove("3.11")
|
|
|
|
excluded_python_versions = ["3.6"]
|
|
|
|
ans = []
|
|
for torch, python_cuda in matrix.items():
|
|
python_versions = python_cuda["python-version"]
|
|
cuda_versions = python_cuda["cuda"]
|
|
if enable_cuda:
|
|
for p in python_versions:
|
|
if p in excluded_python_versions:
|
|
continue
|
|
for c in cuda_versions:
|
|
if c in ["10.1", "11.0"]:
|
|
# no docker image for cuda 10.1 and 11.0
|
|
continue
|
|
ans.append(
|
|
{
|
|
"torch": torch,
|
|
"python-version": p,
|
|
"cuda": c,
|
|
"image": f"pytorch/manylinux-builder:cuda{c}",
|
|
}
|
|
)
|
|
else:
|
|
for p in python_versions:
|
|
if p in excluded_python_versions:
|
|
continue
|
|
|
|
if for_windows:
|
|
p = "cp" + "".join(p.split("."))
|
|
ans.append({"torch": torch, "python-version": p})
|
|
elif for_macos:
|
|
ans.append({"torch": torch, "python-version": p})
|
|
elif version_ge(torch, "2.4.0"):
|
|
ans.append(
|
|
{
|
|
"torch": torch,
|
|
"python-version": p,
|
|
"image": "pytorch/manylinux-builder:cpu-2.4",
|
|
}
|
|
)
|
|
elif version_ge(torch, "2.2.0"):
|
|
ans.append(
|
|
{
|
|
"torch": torch,
|
|
"python-version": p,
|
|
"image": "pytorch/manylinux-builder:cpu-2.2",
|
|
}
|
|
)
|
|
else:
|
|
ans.append(
|
|
{
|
|
"torch": torch,
|
|
"python-version": p,
|
|
"image": f"pytorch/manylinux-builder:cuda10.2",
|
|
}
|
|
)
|
|
|
|
print(json.dumps({"include": ans}))
|
|
|
|
|
|
def main():
|
|
args = get_args()
|
|
generate_build_matrix(
|
|
enable_cuda=args.enable_cuda,
|
|
for_windows=args.for_windows,
|
|
for_macos=args.for_macos,
|
|
test_only_latest_torch=args.test_only_latest_torch,
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|