{"id":28142262,"url":"https://github.com/urob/numpy-mkl","last_synced_at":"2026-05-15T11:09:17.752Z","repository":{"id":286173332,"uuid":"947530253","full_name":"urob/numpy-mkl","owner":"urob","description":"MKL-accelerated NumPy and SciPy wheels","archived":false,"fork":false,"pushed_at":"2025-05-11T23:06:20.000Z","size":1152851,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-12T00:19:16.176Z","etag":null,"topics":["mkl","numpy","pypi"],"latest_commit_sha":null,"homepage":"https://urob.github.io/numpy-mkl/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/urob.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-12T20:46:51.000Z","updated_at":"2025-05-11T23:06:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"78c9dc33-7626-4b23-8f0e-64b2757f3371","html_url":"https://github.com/urob/numpy-mkl","commit_stats":null,"previous_names":["urob/numpy-mkl"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urob%2Fnumpy-mkl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urob%2Fnumpy-mkl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urob%2Fnumpy-mkl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urob%2Fnumpy-mkl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/urob","download_url":"https://codeload.github.com/urob/numpy-mkl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254209843,"owners_count":22032898,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mkl","numpy","pypi"],"created_at":"2025-05-14T19:20:02.087Z","updated_at":"2026-05-15T11:09:17.743Z","avatar_url":"https://github.com/urob.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# numpy-mkl\n\n[![NumPy](https://img.shields.io/badge/NumPy-2.1_%7C_2.2_%7C_2.3_%7C_2.4-013243)](https://urob.github.io/numpy-mkl/numpy/)\n[![SciPy](https://img.shields.io/badge/SciPy-1.15_%7C_1.16_%7C_1.17-8caae6)](https://urob.github.io/numpy-mkl/scipy/)\n[![mkl-service](https://img.shields.io/badge/mkl--service-2.4_%7C_2.5_%7C_2.6_%7C_2.7-3b5526)](https://urob.github.io/numpy-mkl/mkl-service/)\n\nThis repository provides binary wheels for NumPy and SciPy, linked to Intel's high-performance\n[oneAPI Math Kernel\nLibrary](https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html) for Intel CPUs.\nThe wheels are accessible through a custom Python Package Index (PyPI) and can be installed with\n`pip` or `uv`.\n\n## Installation\n\nMKL-accelerated wheels are available for 64-bit versions of Linux and Windows. If using one of the\nrecommended package manager below, there are no other prerequisites; all dependencies — including\nPython if using uv or Nix — are automatically installed by the package manager.\n\n**uv**\n\n```sh\n# Create a Python project with uv.\nuv init\nuv add numpy scipy --index https://urob.github.io/numpy-mkl\n```\n\n**pip**\n\n```sh\n# Install globally or into active venv.\npip install numpy scipy --index-url https://urob.github.io/numpy-mkl\n```\n\n**nix**\n\n```sh\n# Create and run virtual devshell using Nix.\nnix flake init --template github:urob/numpy-mkl\nnix develop .\n```\n\n**manual**\n\nWheels for manual installs can be [downloaded here](https://urob.github.io/numpy-mkl/). Manual\ninstalls must install compatible versions of `mkl-service`, `mkl`, and its indirect dependencies. It\nis recommended to install `mkl-service` from this repository, which has been patched to detect and\nautoload the `mkl` library at runtime.\n\n## Cross-platform collaborations\n\nMKL is only available on `x86-64` architectures, excluding macOS systems. When using `uv`, one can\nuse [platform markers](https://peps.python.org/pep-0508/#environment-markers) to automatically\ninstall MKL-linked versions of NumPy and SciPy when on a compatible system, and otherwise fall back\nto the default versions from PyPI.\n\nBelow is a simple illustration, which falls back to the PyPI packages on macOS.[^1] To\ninstall the environment, copy the following snippet into `pyproject.toml` and then run `uv sync`.\nThis will install a virtual environment in `.venv`, which can be activated on the command line or\nvia most Python editors.\n\n```toml\n[project]\nname = \"example-project\"\nversion = \"0.1.0\"\nrequires-python = \"\u003e=3.13\"\ndependencies = [\n    \"numpy\u003e=2.2.6\",\n    \"scipy\u003e=1.15.2\",\n    \"mkl-service\u003e=2.4.2; sys_platform != 'darwin'\",\n]\n\n[tool.uv.sources]\nnumpy = [{ index = \"numpy-mkl\", marker = \"sys_platform != 'darwin'\" }]\nscipy = [{ index = \"numpy-mkl\", marker = \"sys_platform != 'darwin'\" }]\nmkl-service = [{ index = \"numpy-mkl\", marker = \"sys_platform != 'darwin'\" }]\n\n[[tool.uv.index]]\nname = \"numpy-mkl\"\nurl = \"https://urob.github.io/numpy-mkl\"\nexplicit = true\n```\n\n## Alternatives\n\nThe usual way to obtain MKL-accelerated NumPy and SciPy packages is through\n[Anaconda](https://www.anaconda.com/) or [Conda-forge](https://conda-forge.org/). The purpose of\nthis repository is to provide an alternative for users who prefer to use `pip` or `uv` for package\nmanagement. Other alternatives are listed below.\n\n|                                                                                                                                 |  Windows | Linux | Notes                      |\n| ------------------------------------------------------------------------------------------------------------------------------- |  ------- | ----- | -------------------------- |\n| This repository                                                                                                                 |  Yes     | Yes   |                            |\n| [Intel(r) Distribution for Python](https://www.intel.com/content/www/us/en/developer/tools/oneapi/distribution-for-python.html) |  Yes     | Yes   | Does not support NumPy 2.x |\n| [Numpy-mkl-wheels](https://github.com/cgohlke/numpy-mkl-wheels)                                                                 |  Yes     | No    | Manual install only        |\n\n## Technical details\n\nLinux wheels are built with `gcc` on Ubuntu 22.04. Windows wheels are built with `msvc` (numpy) and\n`mingw-w64` (scipy) on Windows Server 2022. These compilers showed the most consistent runtime\nperformance in a series of [benchmarks](benchmarks/benchmarks.py), even in comparison to\n`icx`-compiled wheels.\n\nAll binaries are dynamically linked against the MKL library. The packages are patched to detect the\nlibrary at runtime as long as `mkl` is installed _anywhere_ accessible by Python. (This is indeed\nthe case when using one of the recommended install methods above, which will automatically install\n`mkl` alongside NumPy or SciPy.)\n\n## References\n\n- [Intel(r) oneMKL Release\n  Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/onemkl-release-notes.html)\n- [Intel(r) oneAPI Release\n  Notes](https://www.intel.com/content/www/us/en/developer/articles/release-notes/intel-oneapi-toolkit-release-notes.html)\n\n[^1]:\n    More sophisticated checks can be added by combining with the `platform_machine` marker. In\n    practices, distinguishing between macOS and other systems seems to be good enough for most use\n    cases.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furob%2Fnumpy-mkl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Furob%2Fnumpy-mkl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furob%2Fnumpy-mkl/lists"}