From 857ba7872d210c291d5003a29da3e4fcc50d366f Mon Sep 17 00:00:00 2001 From: Ian Blockmans Date: Mon, 10 Nov 2025 17:54:02 +0100 Subject: [PATCH 1/4] intel compatibility + documentation update --- Dockerfile.gpu => Dockerfile.cuda | 0 Dockerfile.intel | 42 ++ README.md | 20 +- app/asr_models/asr_model.py | 2 + app/asr_models/openai_whisper_engine.py | 9 +- app/config.py | 2 +- ...compose.gpu.yml => docker-compose.cuda.yml | 2 +- docker-compose.intel.yml | 16 + docs/build.md | 35 +- docs/environmental-variables.md | 4 +- docs/index.md | 12 +- docs/run.md | 13 +- poetry.lock | 549 +++++++++++++++++- pyproject.toml | 49 +- 14 files changed, 726 insertions(+), 29 deletions(-) rename Dockerfile.gpu => Dockerfile.cuda (100%) create mode 100644 Dockerfile.intel rename docker-compose.gpu.yml => docker-compose.cuda.yml (91%) create mode 100644 docker-compose.intel.yml diff --git a/Dockerfile.gpu b/Dockerfile.cuda similarity index 100% rename from Dockerfile.gpu rename to Dockerfile.cuda diff --git a/Dockerfile.intel b/Dockerfile.intel new file mode 100644 index 0000000..08cfa94 --- /dev/null +++ b/Dockerfile.intel @@ -0,0 +1,42 @@ +FROM onerahmet/ffmpeg:n7.1 AS ffmpeg + +FROM swaggerapi/swagger-ui:v5.9.1 AS swagger-ui + +FROM intel/intel-extension-for-pytorch:2.8.10-xpu + +LABEL org.opencontainers.image.source="https://github.com/ahmetoner/whisper-asr-webservice" + +ENV PYTHON_VERSION=3.11 + +ENV POETRY_VENV=/app/.venv + +RUN export DEBIAN_FRONTEND=noninteractive \ + && apt-get -qq update \ + && apt-get -qq install --no-install-recommends \ + python${PYTHON_VERSION}-venv \ + python3-pip \ + && rm -rf /var/lib/apt/lists/* + +RUN ln -s -f /usr/bin/python${PYTHON_VERSION} /usr/bin/python3 && \ + ln -s -f /usr/bin/python${PYTHON_VERSION} /usr/bin/python && \ + ln -s -f /usr/bin/pip3 /usr/bin/pip + +RUN python3 -m venv $POETRY_VENV \ + && $POETRY_VENV/bin/pip install -U pip setuptools \ + && $POETRY_VENV/bin/pip install poetry==2.1.3 + +ENV PATH="${PATH}:${POETRY_VENV}/bin" + +WORKDIR /app + +COPY . . +COPY --from=ffmpeg /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg +COPY --from=swagger-ui /usr/share/nginx/html/swagger-ui.css swagger-ui-assets/swagger-ui.css +COPY --from=swagger-ui /usr/share/nginx/html/swagger-ui-bundle.js swagger-ui-assets/swagger-ui-bundle.js + +RUN poetry config virtualenvs.in-project true +RUN poetry install --extras xpu + +EXPOSE 9000 + +ENTRYPOINT ["whisper-asr-webservice"] \ No newline at end of file diff --git a/README.md b/README.md index c321d6e..ba6082c 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ docker run -d -p 9000:9000 \ onerahmet/openai-whisper-asr-webservice:latest ``` -### GPU +### GPU (cuda) ```shell docker run -d --gpus all -p 9000:9000 \ @@ -37,6 +37,17 @@ docker run -d --gpus all -p 9000:9000 \ onerahmet/openai-whisper-asr-webservice:latest-gpu ``` +### GPU (intel) + +Only `openai_whisper` engine is avialable on intel gpu. + +```shell +docker run -d --device=/dev/dri all -p 9000:9000 \ + -e ASR_MODEL=base \ + -e ASR_ENGINE=openai_whisper \ + onerahmet/openai-whisper-asr-webservice:latest-gpu +``` + #### Cache To reduce container startup time by avoiding repeated downloads, you can persist the cache directory: @@ -55,7 +66,7 @@ docker run -d -p 9000:9000 \ - Voice activity detection (VAD) filtering - Speaker diarization (with WhisperX) - FFmpeg integration for broad audio/video format support -- GPU acceleration support +- GPU acceleration support (nvidia(cuda) or intel(xpu)) - Configurable model loading/unloading - REST API with Swagger documentation @@ -66,7 +77,7 @@ Key configuration options: - `ASR_ENGINE`: Engine selection (openai_whisper, faster_whisper, whisperx) - `ASR_MODEL`: Model selection (tiny, base, small, medium, large-v3, etc.) - `ASR_MODEL_PATH`: Custom path to store/load models -- `ASR_DEVICE`: Device selection (cuda, cpu) +- `ASR_DEVICE`: Device selection (cuda, xpu, cpu) - `MODEL_IDLE_TIMEOUT`: Timeout for model unloading ## Documentation @@ -86,6 +97,9 @@ poetry install --extras cpu # Install dependencies for cuda poetry install --extras cuda +# Install dependencies for intel xpu +poetry install --extras xpu + # Run service poetry run whisper-asr-webservice --host 0.0.0.0 --port 9000 ``` diff --git a/app/asr_models/asr_model.py b/app/asr_models/asr_model.py index 8c625ec..513c7d7 100644 --- a/app/asr_models/asr_model.py +++ b/app/asr_models/asr_model.py @@ -71,6 +71,8 @@ def release_model(self): """ del self.model torch.cuda.empty_cache() + torch.xpu.memory.empty_cache() + #torch.accelerator.memory.empty_cache() available in torch 2.9.0 replacing the above lines gc.collect() self.model = None print("Model unloaded due to timeout") diff --git a/app/asr_models/openai_whisper_engine.py b/app/asr_models/openai_whisper_engine.py index 655d682..f8db83c 100644 --- a/app/asr_models/openai_whisper_engine.py +++ b/app/asr_models/openai_whisper_engine.py @@ -4,6 +4,10 @@ from typing import BinaryIO, Union import torch + +if torch.xpu.is_available(): + import intel_extension_for_pytorch as ipex + import whisper from whisper.utils import ResultWriter, WriteJSON, WriteSRT, WriteTSV, WriteTXT, WriteVTT @@ -18,7 +22,10 @@ def load_model(self): if torch.cuda.is_available(): self.model = whisper.load_model(name=CONFIG.MODEL_NAME, download_root=CONFIG.MODEL_PATH).cuda() else: - self.model = whisper.load_model(name=CONFIG.MODEL_NAME, download_root=CONFIG.MODEL_PATH) + if torch.xpu.is_available(): + self.model = whisper.load_model(name=CONFIG.MODEL_NAME, device="xpu", download_root=CONFIG.MODEL_PATH) + else: + self.model = whisper.load_model(name=CONFIG.MODEL_NAME, download_root=CONFIG.MODEL_PATH) Thread(target=self.monitor_idleness, daemon=True).start() diff --git a/app/config.py b/app/config.py index ffc8e6c..3b54efd 100644 --- a/app/config.py +++ b/app/config.py @@ -17,7 +17,7 @@ class CONFIG: print("You must set the HF_TOKEN environment variable to download the diarization model used by WhisperX.") # Determine the computation device (GPU or CPU) - DEVICE = os.getenv("ASR_DEVICE", "cuda" if torch.cuda.is_available() else "cpu") + DEVICE = os.getenv("ASR_DEVICE", "cuda" if torch.cuda.is_available() else ("xpu" if torch.xpu.is_available() else "cpu")) # Model name to use (e.g., "base", "small", etc.) MODEL_NAME = os.getenv("ASR_MODEL", "base") diff --git a/docker-compose.gpu.yml b/docker-compose.cuda.yml similarity index 91% rename from docker-compose.gpu.yml rename to docker-compose.cuda.yml index a865ee5..ec907c3 100644 --- a/docker-compose.gpu.yml +++ b/docker-compose.cuda.yml @@ -4,7 +4,7 @@ services: whisper-asr-webservice-gpu: build: context: . - dockerfile: Dockerfile.gpu + dockerfile: Dockerfile.gpu.cuda deploy: resources: reservations: diff --git a/docker-compose.intel.yml b/docker-compose.intel.yml new file mode 100644 index 0000000..78ab883 --- /dev/null +++ b/docker-compose.intel.yml @@ -0,0 +1,16 @@ +services: + whisper-asr-webservice-gpu: + build: + context: . + dockerfile: Dockerfile.gpu.xpu + environment: + - ASR_MODEL=base + ports: + - "9000:9000" + volumes: + - ./app:/app/app + - cache-whisper:/root/.cache + devices: + - /dev/dri:/dev/dri +volumes: + cache-whisper: \ No newline at end of file diff --git a/docs/build.md b/docs/build.md index 9f40f20..51cac2f 100644 --- a/docs/build.md +++ b/docs/build.md @@ -20,6 +20,12 @@ Install dependencies for cuda poetry install --extras cuda ``` +Install dependencies for intel xpu + +```shell +poetry install --extras xpu +``` + !!! Note By default, this will install the CPU version of PyTorch. For GPU support, you'll need to install the appropriate CUDA version of PyTorch separately: ```shell @@ -53,16 +59,28 @@ poetry run whisper-asr-webservice --host 0.0.0.0 --port 9000 docker run -d -p 9000:9000 -e ASR_MODEL=base whisper-asr-webservice ``` - === ":octicons-file-code-16: `GPU`" + === ":octicons-file-code-16: `GPU (cuda)`" ```shell # Build Image - docker build -f Dockerfile.gpu -t whisper-asr-webservice-gpu . + docker build -f Dockerfile.cuda -t whisper-asr-webservice-cuda . # Run Container - docker run -d --gpus all -p 9000:9000 whisper-asr-webservice-gpu + docker run -d --gpus all -p 9000:9000 whisper-asr-webservice-cuda # or with specific model - docker run -d --gpus all -p 9000:9000 -e ASR_MODEL=base whisper-asr-webservice-gpu + docker run -d --gpus all -p 9000:9000 -e ASR_MODEL=base whisper-asr-webservice-cuda + ``` + + === ":octicons-file-code-16: `GPU (intel)`" + + ```shell + # Build Image + docker build -f Dockerfile.intel -t whisper-asr-webservice-intel . + + # Run Container + docker run -d --device=/dev/dri all -p 9000:9000 whisper-asr-webservice-intel + # or with specific model + docker run -d --device=/dev/dri all -p 9000:9000 -e ASR_MODEL=base whisper-asr-webservice-intel ``` With `docker-compose`: @@ -73,10 +91,15 @@ poetry run whisper-asr-webservice --host 0.0.0.0 --port 9000 docker-compose up --build ``` - === ":octicons-file-code-16: `GPU`" + === ":octicons-file-code-16: `GPU (cuda)`" + + ```shell + docker-compose -f docker-compose.cuda.yml up --build + ``` + === ":octicons-file-code-16: `GPU (intel)`" ```shell - docker-compose -f docker-compose.gpu.yml up --build + docker-compose -f docker-compose.intel.yml up --build ``` === ":octicons-file-code-16: `Poetry`" diff --git a/docs/environmental-variables.md b/docs/environmental-variables.md index 70d9f3d..b8ab281 100644 --- a/docs/environmental-variables.md +++ b/docs/environmental-variables.md @@ -61,11 +61,11 @@ Defaults to `16000`. Default sample rate for audio input. `16 kHz` is commonly u ### Configuring Device and Quantization ```shell -export ASR_DEVICE=cuda # or 'cpu' +export ASR_DEVICE=cuda # or 'cpu' or 'xpu' export ASR_QUANTIZATION=float32 # or 'float16', 'int8' ``` -The `ASR_DEVICE` defaults to `cuda` if GPU is available, otherwise `cpu`. +The `ASR_DEVICE` defaults to `cuda` if A nvidia gpu is available, next in line is `xpu` if available, otherwise `cpu`. The `ASR_QUANTIZATION` defines the precision for model weights: diff --git a/docs/index.md b/docs/index.md index f5f9376..80c17da 100644 --- a/docs/index.md +++ b/docs/index.md @@ -20,10 +20,16 @@ Current release (v1.9.1) supports following whisper models: docker run -d -p 9000:9000 -e ASR_MODEL=base -e ASR_ENGINE=openai_whisper onerahmet/openai-whisper-asr-webservice:latest ``` -=== ":octicons-file-code-16: `GPU`" +=== ":octicons-file-code-16: `GPU (cuda)`" ```shell - docker run -d --gpus all -p 9000:9000 -e ASR_MODEL=base -e ASR_ENGINE=openai_whisper onerahmet/openai-whisper-asr-webservice:latest-gpu + docker run -d --gpus all -p 9000:9000 -e ASR_MODEL=base -e ASR_ENGINE=openai_whisper onerahmet/openai-whisper-asr-webservice:latest-cuda + ``` + +=== ":octicons-file-code-16: `GPU (intel)`" + + ```shell + docker run -d --gpus all -p 9000:9000 -e ASR_MODEL=base -e ASR_ENGINE=openai_whisper onerahmet/openai-whisper-asr-webservice:latest-intel ``` for more information: @@ -31,6 +37,8 @@ for more information: - [Documentation/Run](https://ahmetoner.github.io/whisper-asr-webservice/run) - [Docker Hub](https://hub.docker.com/r/onerahmet/openai-whisper-asr-webservice) +Disclaimer: intel gpu only curently supported with openai_whisper + ## Credits - This software uses libraries from the [FFmpeg](http://ffmpeg.org) project under the [LGPLv2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html) diff --git a/docs/run.md b/docs/run.md index 75db423..0a804e4 100644 --- a/docs/run.md +++ b/docs/run.md @@ -28,16 +28,25 @@ Docker Hub: onerahmet/openai-whisper-asr-webservice:latest ``` -=== ":octicons-file-code-16: `GPU`" +=== ":octicons-file-code-16: `GPU (cuda)`" ```shell - docker pull onerahmet/openai-whisper-asr-webservice:latest-gpu + docker pull onerahmet/openai-whisper-asr-webservice:latest-cuda docker run -d --gpus all -p 9000:9000 \ -e ASR_MODEL=base \ -e ASR_ENGINE=openai_whisper \ onerahmet/openai-whisper-asr-webservice:latest-gpu ``` +=== ":octicons-file-code-16: `GPU (intel)`" + + ```shell + docker pull onerahmet/openai-whisper-asr-webservice:latest-intel + docker run -d --device=/dev/dri all -p 9000:9000 \ + -e ASR_MODEL=base \ + -e ASR_ENGINE=openai_whisper \ + onerahmet/openai-whisper-asr-webservice:latest-gpu + ``` ### Environment Variables The following environment variables can be used to configure the service: diff --git a/poetry.lock b/poetry.lock index f431c0d..97b8915 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. [[package]] name = "aiohappyeyeballs" @@ -761,6 +761,24 @@ files = [ {file = "docopt-0.6.2.tar.gz", hash = "sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491"}, ] +[[package]] +name = "dpcpp-cpp-rt" +version = "2025.1.1" +description = "Intel® oneAPI DPC++/C++ Compiler Runtime" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "dpcpp_cpp_rt-2025.1.1-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:670285c8aa5f242456d3d95b9fa7cec12ad2ac34d785470780af4cd58be054c0"}, + {file = "dpcpp_cpp_rt-2025.1.1-py2.py3-none-win_amd64.whl", hash = "sha256:5470a3b81c90a4064b0495fd05257e26cacd8e4c9bed1ed15481798cd08f41ff"}, +] + +[package.dependencies] +intel-opencl-rt = "2025.1.1" +intel-openmp = "2025.1.1" +intel-sycl-rt = "2025.1.1" + [[package]] name = "einops" version = "0.8.1" @@ -1374,6 +1392,19 @@ files = [ {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, ] +[[package]] +name = "impi-rt" +version = "2021.15.0" +description = "Intel® MPI Library" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\" and platform_system == \"Linux\"" +files = [ + {file = "impi_rt-2021.15.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:1e900c630d6396c8a33816de9866d74f06419903db454899045fadb05ab390f1"}, + {file = "impi_rt-2021.15.0-py2.py3-none-win_amd64.whl", hash = "sha256:d5ce4ae07c6af2b4deff6ec29a3171a922606fbd376400bc26e6955804db937e"}, +] + [[package]] name = "iniconfig" version = "2.1.0" @@ -1386,6 +1417,145 @@ files = [ {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"}, ] +[[package]] +name = "intel-cmplr-lib-rt" +version = "2025.1.1" +description = "Intel® oneAPI Runtime COMMON LIBRARIES" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "intel_cmplr_lib_rt-2025.1.1-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:42409cfb10b8ed2c90fa985cf156f26b51cec61b1fb0bdff04afdeefa1afd875"}, + {file = "intel_cmplr_lib_rt-2025.1.1-py2.py3-none-win_amd64.whl", hash = "sha256:500235b97d42d83657013dd2b2a35689ee60920ba0a026de5ca2bed9e7b30f2a"}, +] + +[[package]] +name = "intel-cmplr-lib-ur" +version = "2025.1.1" +description = "Intel® oneAPI Unified Runtime Libraries package" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "intel_cmplr_lib_ur-2025.1.1-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:b34ddb46fc70e21209297ac13f800e37be390df1589f4dd22e194b289871f30e"}, + {file = "intel_cmplr_lib_ur-2025.1.1-py2.py3-none-win_amd64.whl", hash = "sha256:a4d2fd91930ea017e9c8dd757b8159352aa7852344eb609d8f855b9efea11cea"}, +] + +[package.dependencies] +umf = "==0.10.*" + +[[package]] +name = "intel-cmplr-lic-rt" +version = "2025.1.1" +description = "Intel® oneAPI Runtime COMMON LICENSING" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "intel_cmplr_lic_rt-2025.1.1-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:561ff766d70e499d334c1fccdf207c26b29c7a4b76bb783548cc2f0d9c8ad628"}, + {file = "intel_cmplr_lic_rt-2025.1.1-py2.py3-none-win_amd64.whl", hash = "sha256:524ad6176d12df567386548823baf8603976e58cc23ab0a8d3da544bfee259f2"}, +] + +[[package]] +name = "intel-extension-for-pytorch" +version = "2.8.10+xpu" +description = "Intel® Extension for PyTorch*" +optional = true +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\" and extra == \"xpu\" and extra != \"cpu\" and extra != \"cuda\"" +files = [ + {file = "intel_extension_for_pytorch-2.8.10+xpu-cp310-cp310-linux_x86_64.whl", hash = "sha256:5fa0490bfd25cfa9225c307b46c039f2e183a16f05052fea4bcb1e6fb036750b"}, + {file = "intel_extension_for_pytorch-2.8.10+xpu-cp310-cp310-win_amd64.whl", hash = "sha256:bea2086778bb58cf704447df4342f229a9eb2088753abc2f36d7d0821a845a10"}, + {file = "intel_extension_for_pytorch-2.8.10+xpu-cp311-cp311-linux_x86_64.whl", hash = "sha256:4a54b1ed392552f5e7948764c573723854bce1422d4311a7dffbab1875d24156"}, + {file = "intel_extension_for_pytorch-2.8.10+xpu-cp311-cp311-win_amd64.whl", hash = "sha256:ff7ad5fb804b60902b2db1033a6ca391b51d65be8ec6344c5b830a238250579c"}, + {file = "intel_extension_for_pytorch-2.8.10+xpu-cp312-cp312-linux_x86_64.whl", hash = "sha256:50c5bd465148988b8034abb606d5da4cc309c6b4ef13bdaed16e2527c94a8a98"}, + {file = "intel_extension_for_pytorch-2.8.10+xpu-cp312-cp312-win_amd64.whl", hash = "sha256:6de4c978d0fd5992fa6ddeaeef1e1700c7c0c7eaea2686ac04f0d92539ec90a6"}, + {file = "intel_extension_for_pytorch-2.8.10+xpu-cp313-cp313-linux_x86_64.whl", hash = "sha256:815b1363e72b8c7e2e59fb03d76226da001f7e59d25bb6c1a8c75f2d4edcb5cc"}, + {file = "intel_extension_for_pytorch-2.8.10+xpu-cp313-cp313-win_amd64.whl", hash = "sha256:0d573630d727f7db8c49abb46a6ce80fc949fc0e710215103e0b4bc7f20998c2"}, + {file = "intel_extension_for_pytorch-2.8.10+xpu-cp313-cp313t-linux_x86_64.whl", hash = "sha256:65aa12fc720fcec3b3d92ff418bb6f4dac238e7949bd6cc7ef34465b2cf6f50b"}, + {file = "intel_extension_for_pytorch-2.8.10+xpu-cp313-cp313t-win_amd64.whl", hash = "sha256:777845719e027c1e517be4382a3bed22416de84a5fe19cc7c8ca51ec10f666ac"}, + {file = "intel_extension_for_pytorch-2.8.10+xpu-cp39-cp39-linux_x86_64.whl", hash = "sha256:7f874e37b8b732ab1d44f7a7f96744ff9205d8f5c91ae84a8d551c66eea9aeed"}, + {file = "intel_extension_for_pytorch-2.8.10+xpu-cp39-cp39-win_amd64.whl", hash = "sha256:1a9d90b276848687fe4c6f0aa2b3bfe067cf0009d84b1a4afb0836b0ca99fca7"}, +] + +[package.dependencies] +numpy = "*" +packaging = "*" +psutil = "*" + +[package.source] +type = "legacy" +url = "https://pytorch-extension.intel.com/release-whl/stable/xpu/us" +reference = "pytorch-extension-intel" + +[[package]] +name = "intel-opencl-rt" +version = "2025.1.1" +description = "Intel® oneAPI OpenCL* Runtime" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "intel_opencl_rt-2025.1.1-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:0e194c2ba8540a41b811721ced9de88ec0bb8eba17cc4a46af91f8ce67941bc1"}, + {file = "intel_opencl_rt-2025.1.1-py2.py3-none-win_amd64.whl", hash = "sha256:1c134e0ffbe05cf58028d93d7f66f346f4a429370200aedda094d840f3f2a50a"}, +] + +[package.dependencies] +intel-cmplr-lic-rt = "2025.1.1" +tbb = "==2022.*" + +[[package]] +name = "intel-openmp" +version = "2025.1.1" +description = "Intel OpenMP* Runtime Library" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "intel_openmp-2025.1.1-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:c3d3255f4076b86b6fb7e556492c4722be583bb958f095adc92d7a0e3807ec51"}, + {file = "intel_openmp-2025.1.1-py2.py3-none-win_amd64.whl", hash = "sha256:4a63f6e0a302f08f8fab1109b91b4678f790e0ef508942ee4b2438ce1a253a60"}, +] + +[package.dependencies] +intel-cmplr-lib-ur = "2025.1.1" + +[[package]] +name = "intel-pti" +version = "0.12.3" +description = "Intel® Profiling Tools Interface" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "intel_pti-0.12.3-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:547b96effeb1e7480ebf5c55844fd7d84b49d8aedf78782625657a47279f0095"}, + {file = "intel_pti-0.12.3-py2.py3-none-win_amd64.whl", hash = "sha256:46bbbea735cb04a263d8e5c64bb8fb5e274cc7af185f9987bcb395f0b3c5e693"}, +] + +[[package]] +name = "intel-sycl-rt" +version = "2025.1.1" +description = "Intel® oneAPI DPC++/C++ SYCL Compiler Runtime package" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "intel_sycl_rt-2025.1.1-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:af82eeab518519c1177ebfed9e05a508a6f2c69795b33c2cf8e54b8020909b30"}, + {file = "intel_sycl_rt-2025.1.1-py2.py3-none-win_amd64.whl", hash = "sha256:34330646844771f03d040b05b39668ff8ff6f647285adac95421209be4f28d5b"}, +] + +[package.dependencies] +intel-cmplr-lib-rt = "2025.1.1" +intel-cmplr-lib-ur = "2025.1.1" +intel-cmplr-lic-rt = "2025.1.1" + [[package]] name = "jinja2" version = "3.1.5" @@ -1923,6 +2093,23 @@ files = [ {file = "mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443"}, ] +[[package]] +name = "mkl" +version = "2025.1.0" +description = "Intel® oneAPI Math Kernel Library" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "mkl-2025.1.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:1c201bc314304760d995a2b5cc7df9175afba2d3eb7aa70c4917ebe35c2f48de"}, + {file = "mkl-2025.1.0-py2.py3-none-win_amd64.whl", hash = "sha256:6f459efc394360675efa78c9e9e6fdfa2883f1c730b0323bca414e8df47d4598"}, +] + +[package.dependencies] +intel-openmp = ">=2024,<2026" +tbb = "==2022.*" + [[package]] name = "more-itertools" version = "10.7.0" @@ -2472,6 +2659,151 @@ files = [ antlr4-python3-runtime = "==4.9.*" PyYAML = ">=5.1.0" +[[package]] +name = "oneccl" +version = "2021.15.2" +description = "Intel® oneAPI Collective Communications Library" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\" and platform_system == \"Linux\"" +files = [ + {file = "oneccl-2021.15.2-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:025b7aacd6f01db9815f27cdec4016a4b59d9e6a99d25c34cd9d961978ecd0bd"}, +] + +[package.dependencies] +impi-rt = "==2021.15.*" +intel-sycl-rt = "==2025.1.*" + +[[package]] +name = "oneccl-bind-pt" +version = "2.8.0+xpu" +description = "" +optional = true +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\" and extra == \"xpu\" and extra != \"cpu\" and extra != \"cuda\"" +files = [ + {file = "oneccl_bind_pt-2.8.0+xpu-cp310-cp310-linux_x86_64.whl", hash = "sha256:6d3168996156fd00c300a8e173642fc76fbcaeff2ab6ed18479ef02f4930eb3d"}, + {file = "oneccl_bind_pt-2.8.0+xpu-cp311-cp311-linux_x86_64.whl", hash = "sha256:ea3751da939e14a3e65236b90d0d7d7bea442e72b47229b826ddac999d5b885f"}, + {file = "oneccl_bind_pt-2.8.0+xpu-cp312-cp312-linux_x86_64.whl", hash = "sha256:8698ba3316126ced7efd1545fe5363df5daa95386ddde122a42f3f0e8ffd47a4"}, + {file = "oneccl_bind_pt-2.8.0+xpu-cp313-cp313-linux_x86_64.whl", hash = "sha256:52d7f974acb2bb2c3a720b9b39960b8eb4b0facee8e0faf76e729c74d9a0879b"}, + {file = "oneccl_bind_pt-2.8.0+xpu-cp313-cp313t-linux_x86_64.whl", hash = "sha256:7c206251812e4f1edcac0d6c5aa7a9ee35bed5c0003f74e1aff90ec6fb7f7871"}, + {file = "oneccl_bind_pt-2.8.0+xpu-cp39-cp39-linux_x86_64.whl", hash = "sha256:d60d3f264c2a4755c57c46413eac7af9ca8c5ab18b7931682580f59599e79efb"}, +] + +[package.source] +type = "legacy" +url = "https://pytorch-extension.intel.com/release-whl/stable/xpu/us" +reference = "pytorch-extension-intel" + +[[package]] +name = "oneccl-devel" +version = "2021.15.2" +description = "Intel® oneAPI Collective Communications Library" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\" and platform_system == \"Linux\"" +files = [ + {file = "oneccl_devel-2021.15.2-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:4d87bd3583438f40f6f3011627ad9f40de0498573a35ec81913ea54095b7e9e1"}, +] + +[package.dependencies] +oneccl = "2021.15.2" + +[[package]] +name = "onemkl-sycl-blas" +version = "2025.1.0" +description = "Intel® oneAPI Math Kernel Library" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "onemkl_sycl_blas-2025.1.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:6d445181651b4c9b7a62db3043df007e251622203b359d72a8a2037b08e14f75"}, + {file = "onemkl_sycl_blas-2025.1.0-py2.py3-none-win_amd64.whl", hash = "sha256:cf120244f9e187d98d3cf4d28d73dc3d3749188fb71c8fd73a50f8f114a65663"}, +] + +[package.dependencies] +dpcpp-cpp-rt = "==2025.*" +intel-opencl-rt = "==2025.*" +mkl = "2025.1.0" + +[[package]] +name = "onemkl-sycl-dft" +version = "2025.1.0" +description = "Intel® oneAPI Math Kernel Library" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "onemkl_sycl_dft-2025.1.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:14e6eef173fcec2c7cb111ca07590532375e534985d9476265c8481c874af105"}, + {file = "onemkl_sycl_dft-2025.1.0-py2.py3-none-win_amd64.whl", hash = "sha256:f49f4d6d80d50ab4b0ab23bf69193ba55d3a695bfe0edd9c74713f699f7e29c9"}, +] + +[package.dependencies] +dpcpp-cpp-rt = "==2025.*" +intel-opencl-rt = "==2025.*" +mkl = "2025.1.0" + +[[package]] +name = "onemkl-sycl-lapack" +version = "2025.1.0" +description = "Intel® oneAPI Math Kernel Library" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "onemkl_sycl_lapack-2025.1.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:74f976ebd6a32140e5b27144c825d2e5585d5ba91f0dcac50476d78a1bdc0c81"}, + {file = "onemkl_sycl_lapack-2025.1.0-py2.py3-none-win_amd64.whl", hash = "sha256:55862fc6bd2b91b489dee32c10f01caa3f26ccaf735d3dc4f8c7c6bae90e9d42"}, +] + +[package.dependencies] +dpcpp-cpp-rt = "==2025.*" +intel-opencl-rt = "==2025.*" +mkl = "2025.1.0" +onemkl-sycl-blas = "2025.1.0" + +[[package]] +name = "onemkl-sycl-rng" +version = "2025.1.0" +description = "Intel® oneAPI Math Kernel Library" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "onemkl_sycl_rng-2025.1.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:19669e714d74b21b2b2b07e2fd25b144b9f9fedba1da94922e8a4f64d9e1f53e"}, + {file = "onemkl_sycl_rng-2025.1.0-py2.py3-none-win_amd64.whl", hash = "sha256:72933d4d955e0d83e6a36e882370c480e5cb79d1f700e3c3144522e181f142dd"}, +] + +[package.dependencies] +dpcpp-cpp-rt = "==2025.*" +intel-opencl-rt = "==2025.*" +mkl = "2025.1.0" + +[[package]] +name = "onemkl-sycl-sparse" +version = "2025.1.0" +description = "Intel® oneAPI Math Kernel Library" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "onemkl_sycl_sparse-2025.1.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:d2e81d57f472977d89f9e4f2be093c048ae4ea35b8acee96b8656e1d4cedbe39"}, + {file = "onemkl_sycl_sparse-2025.1.0-py2.py3-none-win_amd64.whl", hash = "sha256:fc28616c8109bdf7fd748f753a0a6d9718afa06f8561cd705e3038015e10c7b4"}, +] + +[package.dependencies] +dpcpp-cpp-rt = "==2025.*" +intel-opencl-rt = "==2025.*" +mkl = "2025.1.0" +onemkl-sycl-blas = "2025.1.0" + [[package]] name = "onnxruntime" version = "1.22.0" @@ -2958,6 +3290,40 @@ files = [ {file = "protobuf-6.31.1.tar.gz", hash = "sha256:d8cac4c982f0b957a4dc73a80e2ea24fab08e679c0de9deb835f4a12d69aca9a"}, ] +[[package]] +name = "psutil" +version = "7.1.3" +description = "Cross-platform lib for process and system monitoring." +optional = true +python-versions = ">=3.6" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\" and extra == \"xpu\" and extra != \"cpu\" and extra != \"cuda\"" +files = [ + {file = "psutil-7.1.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0005da714eee687b4b8decd3d6cc7c6db36215c9e74e5ad2264b90c3df7d92dc"}, + {file = "psutil-7.1.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:19644c85dcb987e35eeeaefdc3915d059dac7bd1167cdcdbf27e0ce2df0c08c0"}, + {file = "psutil-7.1.3-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:95ef04cf2e5ba0ab9eaafc4a11eaae91b44f4ef5541acd2ee91d9108d00d59a7"}, + {file = "psutil-7.1.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1068c303be3a72f8e18e412c5b2a8f6d31750fb152f9cb106b54090296c9d251"}, + {file = "psutil-7.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:18349c5c24b06ac5612c0428ec2a0331c26443d259e2a0144a9b24b4395b58fa"}, + {file = "psutil-7.1.3-cp313-cp313t-win_arm64.whl", hash = "sha256:c525ffa774fe4496282fb0b1187725793de3e7c6b29e41562733cae9ada151ee"}, + {file = "psutil-7.1.3-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:b403da1df4d6d43973dc004d19cee3b848e998ae3154cc8097d139b77156c353"}, + {file = "psutil-7.1.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ad81425efc5e75da3f39b3e636293360ad8d0b49bed7df824c79764fb4ba9b8b"}, + {file = "psutil-7.1.3-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f33a3702e167783a9213db10ad29650ebf383946e91bc77f28a5eb083496bc9"}, + {file = "psutil-7.1.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fac9cd332c67f4422504297889da5ab7e05fd11e3c4392140f7370f4208ded1f"}, + {file = "psutil-7.1.3-cp314-cp314t-win_amd64.whl", hash = "sha256:3792983e23b69843aea49c8f5b8f115572c5ab64c153bada5270086a2123c7e7"}, + {file = "psutil-7.1.3-cp314-cp314t-win_arm64.whl", hash = "sha256:31d77fcedb7529f27bb3a0472bea9334349f9a04160e8e6e5020f22c59893264"}, + {file = "psutil-7.1.3-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2bdbcd0e58ca14996a42adf3621a6244f1bb2e2e528886959c72cf1e326677ab"}, + {file = "psutil-7.1.3-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:bc31fa00f1fbc3c3802141eede66f3a2d51d89716a194bf2cd6fc68310a19880"}, + {file = "psutil-7.1.3-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3bb428f9f05c1225a558f53e30ccbad9930b11c3fc206836242de1091d3e7dd3"}, + {file = "psutil-7.1.3-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:56d974e02ca2c8eb4812c3f76c30e28836fffc311d55d979f1465c1feeb2b68b"}, + {file = "psutil-7.1.3-cp37-abi3-win_amd64.whl", hash = "sha256:f39c2c19fe824b47484b96f9692932248a54c43799a84282cfe58d05a6449efd"}, + {file = "psutil-7.1.3-cp37-abi3-win_arm64.whl", hash = "sha256:bd0d69cee829226a761e92f28140bec9a5ee9d5b4fb4b0cc589068dbfff559b1"}, + {file = "psutil-7.1.3.tar.gz", hash = "sha256:6c86281738d77335af7aec228328e944b30930899ea760ecf33a4dba66be5e74"}, +] + +[package.extras] +dev = ["abi3audit", "black", "check-manifest", "colorama ; os_name == \"nt\"", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pyreadline ; os_name == \"nt\"", "pytest", "pytest-cov", "pytest-instafail", "pytest-subtests", "pytest-xdist", "pywin32 ; os_name == \"nt\" and platform_python_implementation != \"PyPy\"", "requests", "rstcheck", "ruff", "setuptools", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "validate-pyproject[all]", "virtualenv", "vulture", "wheel", "wheel ; os_name == \"nt\" and platform_python_implementation != \"PyPy\"", "wmi ; os_name == \"nt\" and platform_python_implementation != \"PyPy\""] +test = ["pytest", "pytest-instafail", "pytest-subtests", "pytest-xdist", "pywin32 ; os_name == \"nt\" and platform_python_implementation != \"PyPy\"", "setuptools", "wheel ; os_name == \"nt\" and platform_python_implementation != \"PyPy\"", "wmi ; os_name == \"nt\" and platform_python_implementation != \"PyPy\""] + [[package]] name = "pyannote-audio" version = "3.3.2" @@ -3343,6 +3709,42 @@ docs = ["mkdocs-material"] with-hooks = ["faiss-gpu (>=1.6.3)", "record-keeper (>=0.9.32)", "tensorboard"] with-hooks-cpu = ["faiss-cpu (>=1.6.3)", "record-keeper (>=0.9.32)", "tensorboard"] +[[package]] +name = "pytorch-triton-xpu" +version = "3.4.0" +description = "A language and compiler for custom Deep Learning operations" +optional = true +python-versions = ">=3.9,<3.14" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "pytorch_triton_xpu-3.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:999fef4c1f711092b9d3086525920545df490de476ecebe899ffc777019ae17f"}, + {file = "pytorch_triton_xpu-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:ae573d255b257fdbed319a3440dc9d0a721e31160ab7f6eba1b2226e6a409a1d"}, + {file = "pytorch_triton_xpu-3.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:57b09c8c492985ff6a27cd3a22b08e8f7b96b407bd8030967b6efbb9f63b80cf"}, + {file = "pytorch_triton_xpu-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:8e0ea4558e5776d8ddab0264310be9b26aee5641bcac0da023537556d4317b86"}, + {file = "pytorch_triton_xpu-3.4.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:df4bb3282bac9a3b90231700077110d8680b338416de03c2b7c6133c9b602649"}, + {file = "pytorch_triton_xpu-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:4090dde07a4fffc34aaf855701a9db28e9fccb57b368ade520f1a0f8e811c878"}, + {file = "pytorch_triton_xpu-3.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:60da63c99ca827bdcb0df28e0298bf7d066dc607454c6d6176783cb4e79d838b"}, + {file = "pytorch_triton_xpu-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:a33d0888f3c8df028a2d028842715837d0049524d6c06b9bb11869890a13601a"}, + {file = "pytorch_triton_xpu-3.4.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:80a182fd35969d7d8b770b2c15153998dc1192d3276380fe354681444097a1d6"}, + {file = "pytorch_triton_xpu-3.4.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3bc4a58561e5055bfb33156712905de3c11740fd4579774e4994d516926234da"}, + {file = "pytorch_triton_xpu-3.4.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ac4d8e33986b1c3c5e48151640539272b2187e83016985853111b46fb82c3c94"}, + {file = "pytorch_triton_xpu-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:64aea8de349f3e2e0ebf4c24b011a8122531fdffda5776edaef45829cc241cf8"}, +] + +[package.dependencies] +setuptools = ">=70.2.0" + +[package.extras] +build = ["cmake (>=3.20,<4.0)", "lit"] +tests = ["autopep8", "isort", "llnl-hatchet", "numpy", "pytest", "pytest-forked", "pytest-xdist", "scipy (>=1.7.1)"] +tutorials = ["matplotlib", "pandas", "tabulate"] + +[package.source] +type = "legacy" +url = "https://download.pytorch.org/whl/xpu" +reference = "pytorch-xpu" + [[package]] name = "pytz" version = "2025.2" @@ -4216,6 +4618,35 @@ files = [ [package.extras] widechars = ["wcwidth"] +[[package]] +name = "tbb" +version = "2022.1.0" +description = "Intel® oneAPI Threading Building Blocks (oneTBB)" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "tbb-2022.1.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:4992a3f2268b33f9a7b4c274af9d7001f550e74246436647b267d58e4947628a"}, + {file = "tbb-2022.1.0-py3-none-win_amd64.whl", hash = "sha256:ae9cc327606f604324441abf3ab984c12ea4f6f1ea2a84230874fc40036d0913"}, +] + +[package.dependencies] +tcmlib = "==1.*" + +[[package]] +name = "tcmlib" +version = "1.3.0" +description = "Thread Composability Manager" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "tcmlib-1.3.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:c328ba464c556e46174879c694cafd17ba17c3e7406a79fee47bb3e8c9c6a6c5"}, + {file = "tcmlib-1.3.0-py2.py3-none-win_amd64.whl", hash = "sha256:878c9ce2ae5705da3964b7d00ff721c0c61b23a0aa93960629b2119c2921a1e2"}, +] + [[package]] name = "tensorboardx" version = "2.6.4" @@ -4450,6 +4881,7 @@ files = [ {file = "torch-2.7.1+cpu-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:3bf2db5adf77b433844f080887ade049c4705ddf9fe1a32023ff84ff735aa5ad"}, {file = "torch-2.7.1+cpu-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:8f8b3cfc53010a4b4a3c7ecb88c212e9decc4f5eeb6af75c3c803937d2d60947"}, {file = "torch-2.7.1+cpu-cp312-cp312-win_amd64.whl", hash = "sha256:0bc887068772233f532b51a3e8c8cfc682ae62bef74bf4e0c53526c8b9e4138f"}, + {file = "torch-2.7.1+cpu-cp312-cp312-win_arm64.whl", hash = "sha256:a2618775f32eb4126c5b2050686da52001a08cffa331637d9cf51c8250931e00"}, {file = "torch-2.7.1+cpu-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:eb17646792ac4374ffc87e42369f45d21eff17c790868963b90483ef0b6db4ef"}, {file = "torch-2.7.1+cpu-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:84ea1f6a1d15663037d01b121d6e33bb9da3c90af8e069e5072c30f413455a57"}, {file = "torch-2.7.1+cpu-cp313-cp313-win_amd64.whl", hash = "sha256:b66f77f6f67317344ee083aa7ac4751a14395fcb38060d564bf513978d267153"}, @@ -4535,6 +4967,69 @@ type = "legacy" url = "https://download.pytorch.org/whl/cu126" reference = "pytorch-cuda" +[[package]] +name = "torch" +version = "2.8.0+xpu" +description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" +optional = false +python-versions = ">=3.9.0" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "torch-2.8.0+xpu-cp310-cp310-linux_x86_64.whl", hash = "sha256:a339416534262eee12e4d066b09c5513a8910ba5714267b719b89ffa9a056c53"}, + {file = "torch-2.8.0+xpu-cp310-cp310-win_amd64.whl", hash = "sha256:125c60cd59d51b39581a7e9afcd4679bc3a6b8c1f9440b1bb502a23fdd60571e"}, + {file = "torch-2.8.0+xpu-cp311-cp311-linux_x86_64.whl", hash = "sha256:698131dadbe635f75075842d182c50d7792c0a7d564ed2a63ae2131760b12987"}, + {file = "torch-2.8.0+xpu-cp311-cp311-win_amd64.whl", hash = "sha256:47f1a57258cd460e80b38b2ed6744e31587ab77a96b4215bf59546cb4bab5cc0"}, + {file = "torch-2.8.0+xpu-cp312-cp312-linux_x86_64.whl", hash = "sha256:e19db8135bde12a4357e5ca09f0176083ba9e70554dd6c90725a19b21690cbad"}, + {file = "torch-2.8.0+xpu-cp312-cp312-win_amd64.whl", hash = "sha256:0937d8943c145a83d9bafc6f80ef28971167817f9eda26066d33f72caf8a6646"}, + {file = "torch-2.8.0+xpu-cp313-cp313-linux_x86_64.whl", hash = "sha256:6599225a4e83714d8c33b6bfdeafbd85389027d29270635bb7385d62214bee9e"}, + {file = "torch-2.8.0+xpu-cp313-cp313-win_amd64.whl", hash = "sha256:e034aab1d71760dc80a731531be43673ffe15e99033b82d24e40d2e6d41bd8bf"}, + {file = "torch-2.8.0+xpu-cp313-cp313t-linux_x86_64.whl", hash = "sha256:c08a53e0c953be4a27087719cc1028c2abe9944ae7f1dea709446894000cc2d4"}, + {file = "torch-2.8.0+xpu-cp313-cp313t-win_amd64.whl", hash = "sha256:0b6a39618c78a09f3d928587137ae2d6802a84d773e0f847f9b3e43c1f03b592"}, + {file = "torch-2.8.0+xpu-cp39-cp39-linux_x86_64.whl", hash = "sha256:d5a4033feb79318862db8e09dce4567db0bb2d050a533b090a3045eb420acb97"}, + {file = "torch-2.8.0+xpu-cp39-cp39-win_amd64.whl", hash = "sha256:f2f401276892428e4875cf1d8717c5cbab704b16fc594ccf23795e7b16549a99"}, +] + +[package.dependencies] +dpcpp-cpp-rt = "2025.1.1" +filelock = "*" +fsspec = "*" +impi-rt = {version = "2021.15.0", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +intel-cmplr-lib-rt = "2025.1.1" +intel-cmplr-lib-ur = "2025.1.1" +intel-cmplr-lic-rt = "2025.1.1" +intel-opencl-rt = "2025.1.1" +intel-openmp = "2025.1.1" +intel-pti = "0.12.3" +intel-sycl-rt = "2025.1.1" +jinja2 = "*" +mkl = "2025.1.0" +networkx = "*" +oneccl = {version = "2021.15.2", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +oneccl-devel = {version = "2021.15.2", markers = "platform_system == \"Linux\" and platform_machine == \"x86_64\""} +onemkl-sycl-blas = "2025.1.0" +onemkl-sycl-dft = "2025.1.0" +onemkl-sycl-lapack = "2025.1.0" +onemkl-sycl-rng = "2025.1.0" +onemkl-sycl-sparse = "2025.1.0" +pytorch-triton-xpu = "3.4.0" +setuptools = {version = "*", markers = "python_version >= \"3.12\""} +sympy = ">=1.13.3" +tbb = "2022.1.0" +tcmlib = "1.3.0" +typing-extensions = ">=4.10.0" +umf = "0.10.0" + +[package.extras] +opt-einsum = ["opt-einsum (>=3.3)"] +optree = ["optree (>=0.13.0)"] +pyyaml = ["pyyaml"] + +[package.source] +type = "legacy" +url = "https://download.pytorch.org/whl/xpu" +reference = "pytorch-xpu" + [[package]] name = "torch-audiomentations" version = "0.12.0" @@ -4674,6 +5169,37 @@ type = "legacy" url = "https://download.pytorch.org/whl/cu126" reference = "pytorch-cuda" +[[package]] +name = "torchaudio" +version = "2.8.0+xpu" +description = "An audio package for PyTorch" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "torchaudio-2.8.0+xpu-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:74d85c578988f5450bb8a975cf7c840665be8cdc88f1f9e1376b29ce2074c8d1"}, + {file = "torchaudio-2.8.0+xpu-cp310-cp310-win_amd64.whl", hash = "sha256:8f3db75a62b5371e9bb3b043f5999cdf0c93d959beaf59d7d68987c47d8b521f"}, + {file = "torchaudio-2.8.0+xpu-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:7c7ee20a1c29575913844704df462525e921833cba1ca0a1bd3dfc17a72ac422"}, + {file = "torchaudio-2.8.0+xpu-cp311-cp311-win_amd64.whl", hash = "sha256:2b4dfedd47af3e66c0e2b3204e09a67ae8ace650afda7eab3342add5995c298a"}, + {file = "torchaudio-2.8.0+xpu-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9f1d68e82a2754fd4dbce6664e6e7ca84bdec1ff346ca69f034758ad8d8078c4"}, + {file = "torchaudio-2.8.0+xpu-cp312-cp312-win_amd64.whl", hash = "sha256:555d4167e93e64c33929431b31a93f5eb0165a01a61cf18afa8a6bc873f8b601"}, + {file = "torchaudio-2.8.0+xpu-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:4deea5c408ff308a9005e65fa1557f5f18047ae73ba090eb7ab8d438ebb71dae"}, + {file = "torchaudio-2.8.0+xpu-cp313-cp313-win_amd64.whl", hash = "sha256:7d03f0751312d675707bc261e5603d605f5c28a4aee051ed198da0ffde2134cc"}, + {file = "torchaudio-2.8.0+xpu-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:cf71f417a429cabcea87b4fb69fb638423878bd313795c7208e7830475252701"}, + {file = "torchaudio-2.8.0+xpu-cp313-cp313t-win_amd64.whl", hash = "sha256:ebbfeb7a72a53e92ff1c90f4c0788770339d127268f67a81dad9f0c767a076ed"}, + {file = "torchaudio-2.8.0+xpu-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:649a1a1d1c6c2918cf37cefb4d86e5c4b6c5b05f5d26e8a0b8d7924a1de45e78"}, + {file = "torchaudio-2.8.0+xpu-cp39-cp39-win_amd64.whl", hash = "sha256:9ea61334ef05a93e204592d8b46a4d9f9a841222612a1e8816ab9a0e8627e8d1"}, +] + +[package.dependencies] +torch = "2.8.0" + +[package.source] +type = "legacy" +url = "https://download.pytorch.org/whl/xpu" +reference = "pytorch-xpu" + [[package]] name = "torchmetrics" version = "1.7.3" @@ -4806,7 +5332,7 @@ description = "A language and compiler for custom Deep Learning operations" optional = false python-versions = "*" groups = ["main"] -markers = "platform_machine == \"x86_64\" and platform_system == \"Linux\" or platform_machine == \"x86_64\" and (sys_platform == \"linux\" or sys_platform == \"linux2\") or sys_platform == \"linux2\"" +markers = "(platform_machine == \"x86_64\" or sys_platform == \"linux2\") and (platform_system == \"Linux\" or sys_platform == \"linux\" or sys_platform == \"linux2\")" files = [ {file = "triton-3.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b74db445b1c562844d3cfad6e9679c72e93fdfb1a90a24052b03bb5c49d1242e"}, {file = "triton-3.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b31e3aa26f8cb3cc5bf4e187bf737cbacf17311e1112b781d4a059353dfd731b"}, @@ -4867,6 +5393,22 @@ files = [ {file = "tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9"}, ] +[[package]] +name = "umf" +version = "0.10.0" +description = "Unified Memory Framework" +optional = false +python-versions = "*" +groups = ["main"] +markers = "platform_machine == \"x86_64\" and sys_platform != \"darwin\"" +files = [ + {file = "umf-0.10.0-py2.py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:a27a368c614fd9d0e67e9ef77de391a7080697d7a4d51b9035707f629d81dc7c"}, + {file = "umf-0.10.0-py2.py3-none-win_amd64.whl", hash = "sha256:7b3ee402f1a5bbe418d661970338f75b25a441cb59bb084dca916040f5c3c303"}, +] + +[package.dependencies] +tcmlib = "==1.3.*" + [[package]] name = "urllib3" version = "1.26.15" @@ -5261,8 +5803,9 @@ propcache = ">=0.2.1" [extras] cpu = ["torch", "torchaudio"] cuda = ["torch", "torchaudio"] +xpu = ["intel-extension-for-pytorch", "oneccl_bind_pt", "pytorch-triton-xpu", "torch", "torchaudio"] [metadata] lock-version = "2.1" python-versions = ">=3.10,<3.13" -content-hash = "aa0c25c7875b78f54997d8cd2f3a55239b5e6e6408c62455afb420bb0a4e2d85" +content-hash = "868741f711c74cb414423352e88d22c2d93c044f1e519b2c7f0fcb9a87821d06" diff --git a/pyproject.toml b/pyproject.toml index a1997e0..865efd5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,30 +44,63 @@ cuda = [ "torch (==2.7.1+cu126)", "torchaudio (==2.7.1+cu126)" ] +xpu = [ + "pytorch-triton-xpu (==3.4.0)", + "torch (==2.8.0+xpu)", + "torchaudio (==2.8.0+xpu)", + "intel-extension-for-pytorch (==2.8.10+xpu)", + "oneccl_bind_pt (==2.8.0+xpu)" +] [[tool.poetry.source]] name = "pytorch-cpu" url = "https://download.pytorch.org/whl/cpu" priority = "explicit" + [[tool.poetry.source]] name = "pytorch-cuda" url = "https://download.pytorch.org/whl/cu126" priority = "explicit" + +[[tool.poetry.source]] +name = "pytorch-xpu" +url = "https://download.pytorch.org/whl/xpu" +priority = "explicit" + + +[[tool.poetry.source]] +name = "pytorch-extension-intel" +url = "https://pytorch-extension.intel.com/release-whl/stable/xpu/us/" +priority = "explicit" + [tool.poetry.dependencies] torch = [ - { markers = "extra == 'cpu' and extra != 'cuda' and platform_machine == 'x86_64' and sys_platform != 'darwin'", source = "pytorch-cpu"}, - { markers = "extra == 'cuda' and extra != 'cpu' and platform_machine == 'x86_64' and sys_platform != 'darwin'", source = "pytorch-cuda"}, - { markers = "extra == 'cpu' and extra != 'cuda' and sys_platform == 'darwin'", source = "pypi"}, - { markers = "extra == 'cpu' and extra != 'cuda' and platform_machine == 'aarch64' and sys_platform != 'darwin'", source = "pypi"} + { markers = "extra == 'cpu' and extra != 'cuda' and extra != 'xpu' and platform_machine == 'x86_64' and sys_platform != 'darwin'", source = "pytorch-cpu"}, + { markers = "extra == 'cuda' and extra != 'cpu' and extra != 'xpu' and platform_machine == 'x86_64' and sys_platform != 'darwin'", source = "pytorch-cuda"}, + { markers = "extra == 'xpu' and extra != 'cpu' and extra != 'cuda' and platform_machine == 'x86_64' and sys_platform != 'darwin'", source = "pytorch-xpu"}, + { markers = "extra == 'cpu' and extra != 'cuda' and extra != 'xpu' and sys_platform == 'darwin'", source = "pypi"}, + { markers = "extra == 'cpu' and extra != 'cuda' and extra != 'xpu' and platform_machine == 'aarch64' and sys_platform != 'darwin'", source = "pypi"} ] torchaudio = [ - { markers = "extra == 'cpu' and extra != 'cuda' and platform_machine == 'x86_64' and sys_platform != 'darwin'", source = "pytorch-cpu"}, - { markers = "extra == 'cuda' and extra != 'cpu' and platform_machine == 'x86_64' and sys_platform != 'darwin'", source = "pytorch-cuda"}, - { markers = "extra == 'cpu' and extra != 'cuda' and sys_platform == 'darwin'", source = "pypi"}, - { markers = "extra == 'cpu' and extra != 'cuda' and platform_machine == 'aarch64' and sys_platform != 'darwin'", source = "pypi"} + { markers = "extra == 'cpu' and extra != 'cuda' and extra != 'xpu' and platform_machine == 'x86_64' and sys_platform != 'darwin'", source = "pytorch-cpu"}, + { markers = "extra == 'cuda' and extra != 'cpu' and extra != 'xpu' and platform_machine == 'x86_64' and sys_platform != 'darwin'", source = "pytorch-cuda"}, + { markers = "extra == 'xpu' and extra != 'cpu' and extra != 'cuda' and platform_machine == 'x86_64' and sys_platform != 'darwin'", source = "pytorch-xpu"}, + { markers = "extra == 'cpu' and extra != 'cuda' and extra != 'xpu' and sys_platform == 'darwin'", source = "pypi"}, + { markers = "extra == 'cpu' and extra != 'cuda' and extra != 'xpu' and platform_machine == 'aarch64' and sys_platform != 'darwin'", source = "pypi"} + ] + + pytorch-triton-xpu = [ + { markers = "extra == 'xpu' and extra != 'cpu' and extra != 'cuda' and platform_machine == 'x86_64' and sys_platform != 'darwin'", source = "pytorch-xpu"} ] + intel-extension-for-pytorch = [ + { markers = "extra == 'xpu' and extra != 'cpu' and extra != 'cuda' and platform_machine == 'x86_64' and sys_platform != 'darwin'", source = "pytorch-extension-intel"} + ] + oneccl_bind_pt = [ + { markers = "extra == 'xpu' and extra != 'cpu' and extra != 'cuda' and platform_machine == 'x86_64' and sys_platform != 'darwin'", source = "pytorch-extension-intel"} + ] + [tool.poetry.group.dev.dependencies] From ac51fa8a443b2b18aaf30abdf1f6860f9c632b22 Mon Sep 17 00:00:00 2001 From: Ian Blockmans Date: Mon, 10 Nov 2025 17:58:01 +0100 Subject: [PATCH 2/4] fix dockerfile.gpu.cuda to dockerfile.cuda in compose file --- docker-compose.cuda.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.cuda.yml b/docker-compose.cuda.yml index ec907c3..6685150 100644 --- a/docker-compose.cuda.yml +++ b/docker-compose.cuda.yml @@ -4,7 +4,7 @@ services: whisper-asr-webservice-gpu: build: context: . - dockerfile: Dockerfile.gpu.cuda + dockerfile: Dockerfile.cuda deploy: resources: reservations: From 2103903d60475c5ba11cd76d2b40469974287125 Mon Sep 17 00:00:00 2001 From: Ian Blockmans Date: Wed, 12 Nov 2025 00:19:11 +0100 Subject: [PATCH 3/4] fix gpu.xpu to .intel --- docker-compose.intel.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.intel.yml b/docker-compose.intel.yml index 78ab883..4c85f0f 100644 --- a/docker-compose.intel.yml +++ b/docker-compose.intel.yml @@ -2,7 +2,7 @@ services: whisper-asr-webservice-gpu: build: context: . - dockerfile: Dockerfile.gpu.xpu + dockerfile: Dockerfile.intel environment: - ASR_MODEL=base ports: From cb281925a3b7b40311d4ef134a913117d9d7df94 Mon Sep 17 00:00:00 2001 From: Ian Blockmans Date: Wed, 12 Nov 2025 00:32:04 +0100 Subject: [PATCH 4/4] add device=xpu --- docker-compose.intel.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.intel.yml b/docker-compose.intel.yml index 4c85f0f..84419e6 100644 --- a/docker-compose.intel.yml +++ b/docker-compose.intel.yml @@ -5,6 +5,7 @@ services: dockerfile: Dockerfile.intel environment: - ASR_MODEL=base + - ASR_DEVICE=xpu ports: - "9000:9000" volumes: