intel-extension-for-pytorch VS wonnx

Compare intel-extension-for-pytorch vs wonnx and see what are their differences.

intel-extension-for-pytorch

A Python package for extending the official PyTorch that can easily obtain performance on Intel platform (by intel)

wonnx

A WebGPU-accelerated ONNX inference run-time written 100% in Rust, ready for native and the web (by webonnx)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
intel-extension-for-pytorch wonnx
14 18
1,342 1,487
9.6% 6.8%
9.7 6.5
3 days ago 29 days ago
Python Rust
Apache License 2.0 GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

intel-extension-for-pytorch

Posts with mentions or reviews of intel-extension-for-pytorch. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-20.
  • Efficient LLM inference solution on Intel GPU
    3 projects | news.ycombinator.com | 20 Jan 2024
    OK I found it. Looks like they use SYCL (which for some reason they've rebranded to DPC++): https://github.com/intel/intel-extension-for-pytorch/tree/v2...
  • Intel CEO: 'The entire industry is motivated to eliminate the CUDA market'
    13 projects | news.ycombinator.com | 14 Dec 2023
    Just to point out it does, kind of: https://github.com/intel/intel-extension-for-pytorch

    I've asked before if they'll merge it back into PyTorch main and include it in the CI, not sure if they've done that yet.

  • Watch out AMD: Intel Arc A580 could be the next great affordable GPU
    2 projects | news.ycombinator.com | 6 Aug 2023
    Intel already has a working GPGPU stack, using oneAPI/SYCL.

    They also have arguably pretty good OpenCL support, as well as downstream support for PyTorch and Tensorflow using their custom extensions https://github.com/intel/intel-extension-for-tensorflow and https://github.com/intel/intel-extension-for-pytorch which are actively developed and just recently brought up-to-date with upstream releases.

  • How to run Llama 13B with a 6GB graphics card
    12 projects | news.ycombinator.com | 14 May 2023
    https://github.com/intel/intel-extension-for-pytorch :

    > Intel® Extension for PyTorch extends PyTorch* with up-to-date features optimizations for an extra performance boost on Intel hardware. Optimizations take advantage of AVX-512 Vector Neural Network Instructions (AVX512 VNNI) and Intel® Advanced Matrix Extensions (Intel® AMX) on Intel CPUs as well as Intel Xe Matrix Extensions (XMX) AI engines on Intel discrete GPUs. Moreover, through PyTorch* xpu device, Intel® Extension for PyTorch* provides easy GPU acceleration for Intel discrete GPUs with PyTorch*

    https://pytorch.org/blog/celebrate-pytorch-2.0/ :

    > As part of the PyTorch 2.0 compilation stack, TorchInductor CPU backend optimization brings notable performance improvements via graph compilation over the PyTorch eager mode.

    The TorchInductor CPU backend is sped up by leveraging the technologies from the Intel® Extension for PyTorch for Conv/GEMM ops with post-op fusion and weight prepacking, and PyTorch ATen CPU kernels for memory-bound ops with explicit vectorization on top of OpenMP-based thread parallelization*

    DLRS Deep Learning Reference Stack: https://intel.github.io/stacks/dlrs/index.html

  • Train Lora's on Arc GPUs?
    2 projects | /r/IntelArc | 14 Apr 2023
    Install intel extensions for pytorch using docker. https://github.com/intel/intel-extension-for-pytorch
  • Does it make sense to buy intel arc A770 16gb or AMD RX 7900 XT for machine learning?
    2 projects | /r/IntelArc | 7 Apr 2023
  • PyTorch Intel HD Graphics 4600 card compatibility?
    1 project | /r/pytorch | 4 Apr 2023
    There is: https://github.com/intel/intel-extension-for-pytorch for intel cards on GPUs, but I would assume this doesn't extend to integraded graphics
  • Stable Diffusion Web UI for Intel Arc
    7 projects | /r/IntelArc | 24 Feb 2023
    Nonetheless, this issue might be relevant for your case.
  • Does anyone uses Intel Arc A770 GPU for machine learning? [D]
    5 projects | /r/MachineLearning | 30 Nov 2022
  • Will ROCm finally get some love?
    3 projects | /r/Amd | 16 Nov 2022
    I'm not sure where the disdain for ROCm is coming from, but tensorflow-rocm and the rocm pytorch container were fairly easy to setup and use from scratch once I got the correct Linux kernel installed along with the rest of the necessary ROCm components needed to use tensorflow and pytorch for rocm. TBF Intel Extension for Tensorflow wasn't too bad to setup either (except for the lack of float16 mixed precision training support, that was definitely a pain point to not be able to have), but Intel Extension for Pytorch for Intel GPUs (a.k.a. IPEX-GPU) however, has been a PITA to use for my i5 11400H iGPU NOT because the iGPU itself is slow, BUT because the current i915 driver in the mainline linux kernel simply doesn't work with IPEX-GPU (every script that I've ran ends up freezing when using even the i915 drivers as recent as Kernel version 6), and when I ended up installing drivers that were meant for the Arc GPUs that finally got IPEX-GPUs to work, I ended up with even more issues such as sh*tty FP64 emulation support that basically meant I had to do some really janky workarounds for things to not break while FP64 emulation was enabled (disabling was simply not an option for me, long story short). And yea unlike Intel, both Nvidia AND AMD actually do support FP64 instructions AND FLOAT16 mixed precision training natively on their GPUs so that one doesn't have to worry about running into "unsupported FP64 instructions" and "unsupported training modes" no matter what software they're running on those GPUs.

wonnx

Posts with mentions or reviews of wonnx. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-14.
  • Intel CEO: 'The entire industry is motivated to eliminate the CUDA market'
    13 projects | news.ycombinator.com | 14 Dec 2023
    The two I know of are IREE and Kompute[1]. I'm not sure how much momentum the latter has, I don't see it referenced much. There's also a growing body of work that uses Vulkan indirectly through WebGPU. This is currently lagging in performance due to lack of subgroups and cooperative matrix mult, but I see that gap closing. There I think wonnx[2] has the most momentum, but I am aware of other efforts.

    [1]: https://kompute.cc/

    [2]: https://github.com/webonnx/wonnx

  • VkFFT: Vulkan/CUDA/Hip/OpenCL/Level Zero/Metal Fast Fourier Transform Library
    7 projects | news.ycombinator.com | 2 Aug 2023
    To a first approximation, Kompute[1] is that. It doesn't seem to be catching on, I'm seeing more buzz around WebGPU solutions, including wonnx[2] and more hand-rolled approaches, and IREE[3], the latter of which has a Vulkan back-end.

    [1]: https://kompute.cc/

    [2]: https://github.com/webonnx/wonnx

    [3]: https://github.com/openxla/iree

  • Onnx Runtime: “Cross-Platform Accelerated Machine Learning”
    5 projects | news.ycombinator.com | 25 Jul 2023
    There's also a third-party WebGPU implementation: https://github.com/webonnx/wonnx
  • Are there any ML crates that would compile to WASM?
    3 projects | /r/rust | 3 Jul 2023
    By experimental I meant e.g. using WGPU to run compute shaders like wonnx, which is working fine but only on a very restricted set of devices and browsers.
  • WebGPU ONNX inference runtime written in Rust
    1 project | news.ycombinator.com | 23 May 2023
  • PyTorch Primitives in WebGPU for the Browser
    12 projects | news.ycombinator.com | 19 May 2023
    https://news.ycombinator.com/item?id=35696031 ... TIL about wonnx: https://github.com/webonnx/wonnx#in-the-browser-using-webgpu...

    microsoft/onnxruntime: https://github.com/microsoft/onnxruntime

    Apache/arrow has language-portable Tensors for cpp: https://arrow.apache.org/docs/cpp/api/tensor.html and rust: https://docs.rs/arrow/latest/arrow/tensor/struct.Tensor.html and Python: https://arrow.apache.org/docs/python/api/tables.html#tensors https://arrow.apache.org/docs/python/generated/pyarrow.Tenso...

    Fwiw it looks like the llama.cpp Tensor is from ggml, for which there are CUDA and OpenCL implementations (but not yet ROCm, or a WebGPU shim for use with emscripten transpilation to WASM): https://github.com/ggerganov/llama.cpp/blob/master/ggml.h

    Are the recommendable ways to cast e.g. arrow Tensors to pytorch/tensorflow?

    FWIU, Rust has a better compilation to WASM; and that's probably faster than already-compiled-to-JS/ES TensorFlow + WebGPU.

    What's a fair benchmark?

  • rustformers/llm: Run inference for Large Language Models on CPU, with Rust 🦀🚀🦙
    4 projects | /r/rust | 10 May 2023
    wonnx has done some fantastic work in this regard, so that's where we plan to start once we get there. In terms of general discussion of alternate backends, see this issue.
  • I want to talk about WebGPU
    15 projects | news.ycombinator.com | 3 May 2023
    > GPU in other ways, such as training ML models and then using them via an inference engine all powered by your local GPU?

    Have a look at wonnix https://github.com/webonnx/wonnx

    A WebGPU-accelerated ONNX inference run-time written 100% in Rust, ready for native and the web

  • Chrome Ships WebGPU
    17 projects | news.ycombinator.com | 6 Apr 2023
    Looking forward to your WebGPU ML runtime! Also, why not contribute back to WONNX? (https://github.com/webonnx/wonnx)
  • OpenXLA Is Available Now
    5 projects | news.ycombinator.com | 9 Mar 2023
    You can indeed perform inference using WebGPU (see e.g. [1] for GPU-accelerated inference of ONNX models on WebGPU; I am one of the authors).

    The point made above is that WebGPU can only be used for GPU's and not really for other types of 'neural accelerators' (like e.g. the ANE on Apple devices).

    [1] https://github.com/webonnx/wonnx

What are some alternatives?

When comparing intel-extension-for-pytorch and wonnx you can also consider the following projects:

llama-cpp-python - Python bindings for llama.cpp

stablehlo - Backward compatible ML compute opset inspired by HLO/MHLO

openai-whisper-cpu - Improving transcription performance of OpenAI Whisper for CPU based deployment

onnx - Open standard for machine learning interoperability

FastChat - An open platform for training, serving, and evaluating large language models. Release repo for Vicuna and Chatbot Arena.

tract - Tiny, no-nonsense, self-contained, Tensorflow and ONNX inference

ROCm - AMD ROCm™ Software - GitHub Home [Moved to: https://github.com/ROCm/ROCm]

iree - A retargetable MLIR-based machine learning compiler and runtime toolkit.

bitsandbytes - Accessible large language models via k-bit quantization for PyTorch.

burn - Burn is a new comprehensive dynamic Deep Learning Framework built using Rust with extreme flexibility, compute efficiency and portability as its primary goals.

rocm-examples

blaze - A Rustified OpenCL Experience