[XPU] xpu kernel release workflow (#33679)
This commit is contained in:
@@ -11,10 +11,12 @@ DEFAULT_CUDA_VERSION = "130"
|
||||
|
||||
|
||||
def check_wheel_cuda_version(path_name, target_cuda_version):
|
||||
# Skip non-CUDA backend wheels (rocm, musa, ...). Their +<backend><ver>
|
||||
# local-version tags don't match the CUDA wheel regex below, and they are
|
||||
# published by the dedicated release-rocm*/release-musa* jobs.
|
||||
if re.search(r"\+(rocm|musa)", path_name):
|
||||
# Skip non-CUDA backend wheels. ROCm/MUSA encode the backend in the
|
||||
# local-version tag (for example +rocm720), while XPU uses a dedicated
|
||||
# package name (sglang_kernel_xpu-*).
|
||||
if re.search(r"\+(rocm|musa)", path_name) or path_name.startswith(
|
||||
"sglang_kernel_xpu-"
|
||||
):
|
||||
return False
|
||||
|
||||
# For other CUDA versions, the wheel path name will contain the cuda version suffix, e.g. sglang_kernel-0.4.0+cu130-cp310-abi3-manylinux2014_x86_64.whl
|
||||
@@ -48,8 +50,14 @@ def update_wheel_index(cuda_version=DEFAULT_CUDA_VERSION, rocm_version=None):
|
||||
f.write(f'<a href="{full_url}">{path.name}</a><br>\n')
|
||||
|
||||
|
||||
def _update_non_cuda_wheel_index(backend, version):
|
||||
index_dir = pathlib.Path(f"sgl-whl/{backend}{version}/sglang-kernel")
|
||||
def _update_non_cuda_wheel_index(
|
||||
backend,
|
||||
version=None,
|
||||
package_name="sglang_kernel",
|
||||
index_package_name="sglang-kernel",
|
||||
):
|
||||
backend_dir = f"{backend}{version or ''}"
|
||||
index_dir = pathlib.Path(f"sgl-whl/{backend_dir}/{index_package_name}")
|
||||
index_dir.mkdir(exist_ok=True, parents=True)
|
||||
base_url = "https://github.com/sgl-project/whl/releases/download"
|
||||
|
||||
@@ -60,7 +68,7 @@ def _update_non_cuda_wheel_index(backend, version):
|
||||
with open(path, "rb") as f:
|
||||
sha256 = hashlib.sha256(f.read()).hexdigest()
|
||||
ver = re.findall(
|
||||
rf"sglang_kernel-([0-9.]+(?:\.post[0-9]+)?)(?:\+{backend}[0-9]+)?-",
|
||||
rf"{re.escape(package_name)}-([0-9.]+(?:\.post[0-9]+)?)(?:\+{backend}[0-9]+)?-",
|
||||
path.name,
|
||||
)[0]
|
||||
full_url = f"{base_url}/v{ver}/{path.name}#sha256={sha256}"
|
||||
@@ -68,6 +76,14 @@ def _update_non_cuda_wheel_index(backend, version):
|
||||
f.write(f'<a href="{full_url}">{path.name}</a><br>\n')
|
||||
|
||||
|
||||
def update_wheel_index_xpu():
|
||||
_update_non_cuda_wheel_index(
|
||||
"xpu",
|
||||
package_name="sglang_kernel_xpu",
|
||||
index_package_name="sglang-kernel-xpu",
|
||||
)
|
||||
|
||||
|
||||
def update_wheel_index_rocm(rocm_version):
|
||||
_update_non_cuda_wheel_index("rocm", rocm_version)
|
||||
|
||||
@@ -81,8 +97,11 @@ def main():
|
||||
parser.add_argument("--cuda", type=str, default=DEFAULT_CUDA_VERSION)
|
||||
parser.add_argument("--rocm", type=str, default=None)
|
||||
parser.add_argument("--musa", type=str, default=None)
|
||||
parser.add_argument("--xpu", action="store_true")
|
||||
args = parser.parse_args()
|
||||
if args.musa is not None:
|
||||
if args.xpu:
|
||||
update_wheel_index_xpu()
|
||||
elif args.musa is not None:
|
||||
update_wheel_index_musa(args.musa)
|
||||
elif args.rocm is not None:
|
||||
update_wheel_index_rocm(args.rocm)
|
||||
|
||||
Reference in New Issue
Block a user