imate, short for Implicit Matrix Trace Estimator, is a modular and high-performance C++/CUDA library distributed as a Python package that provides scalable randomized algorithms for the computationally expensive matrix functions in machine learning.
Links
Install
Install with pip
pip install imate
Install with conda
conda install s-ameli::imate
Docker Image
docker pull sameli/imate
Supported Platforms
Successful installation and tests performed on the following operating systems, architectures, and Python and PyPy versions:
Platform |
Arch |
Device |
Python Version |
PyPy Version 1 |
Continuous Integration |
||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
3.10 |
3.11 |
3.12 |
3.13 |
3.14 |
3.9 |
3.10 |
3.11 |
||||
Linux |
X86-64 |
CPU |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
GPU |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|||
AARCH-64 |
CPU |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
||
GPU |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|||
macOS |
X86-64 |
CPU |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
|
GPU 2 |
✖ |
✖ |
✖ |
✖ |
✖ |
✖ |
✖ |
✖ |
|||
ARM-64 |
CPU |
✔ |
✔ |
✔ |
✔ |
✔ |
✖ |
✔ |
✔ |
||
GPU 2 |
✖ |
✖ |
✖ |
✖ |
✖ |
✖ |
✖ |
✖ |
|||
Windows |
X86-64 |
CPU |
✔ |
✔ |
✔ |
✔ |
✔ |
✖ |
✖ |
✖ |
|
GPU |
✔ |
✔ |
✔ |
✔ |
✔ |
✖ |
✖ |
✖ |
Python wheels for imate for all supported platforms and versions in the above are available through PyPI and Anaconda Cloud. If you need imate on other platforms, architectures, and Python or PyPy versions, raise an issue on GitHub and we build its Python Wheel for you.
Supported GPU Architectures
imate can run on CUDA-capable multi-GPU devices. Using the docker container is the easiest way to run imate on GPU devices. The supported GPU micro-architectures and CUDA version are as follows:
Version \ Arch |
Kepler |
Maxwell |
Pascal |
Volta |
Turing |
Ampere |
Ada |
Hopper |
Blackwell |
|---|---|---|---|---|---|---|---|---|---|
CUDA 9 |
✖ |
✖ |
✖ |
✖ |
✖ |
✖ |
✖ |
✖ |
✖ |
CUDA 10 |
✔ |
✔ |
✔ |
✔ |
✔ |
✖ |
✖ |
✖ |
✖ |
CUDA 11 |
✖ |
✖ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✖ |
CUDA 12 |
✖ |
✖ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
CUDA 13 |
✖ |
✖ |
✖ |
✖ |
✔ |
✔ |
✔ |
✔ |
✔ |
Documentation
See documentation, including:
Performance
imate is scalable to very large matrices. Its core library for basic linear algebraic operations is faster than OpenBLAS, and its pseudo-random generator is a hundred-fold faster than the implementation in the standard C++ library.
Read about the performance of imate in practical applications:
How to Contribute
We welcome contributions via GitHub’s pull request. If you do not feel comfortable modifying the code, we also welcome feature requests and bug reports as GitHub issues.
How to Cite
If you publish work that uses imate, please consider citing the manuscripts available here.
License
This project uses a BSD 3-clause license, in hopes that it will be accessible to most projects. If you require a different license, please raise an issue and we will consider a dual license.
Metadata
Release files for imate 0.29.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| imate-0.29.11.tar.gz | 449.6 kB | Without provenance | Details for imate-0.29.11.tar.gz |
Built distributions (wheels)
Total release size: 51.7 MB
Release files / imate-0.29.11.tar.gz
| Download URL | imate-0.29.11.tar.gz |
|---|---|
| Size | 449.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
596b2c5726764f2c87599346cd5a421b6cd7056fde486a680b2a85ce41ca311c
|
|
BLAKE2b-256 checksum How to use checksums |
eb8cbc65370700a8d225d28ec831c9af7a19713c817af07164026a4712f7509b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / imate-0.29.11-cp314-cp314-win_amd64.whl
| Download URL | imate-0.29.11-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
59a99afce7326aee5048563811782da9b98f20015a4c0d18158b3a71e98cdf1a
|
|
BLAKE2b-256 checksum How to use checksums |
95fac8224e833208d5fb0fe22cae491d742e8fcffd854f1d1d9a73fa75f0e22c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / imate-0.29.11-cp314-cp314-manylinux_2_34_x86_64.whl
| Download URL | imate-0.29.11-cp314-cp314-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.14 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
ebb5b4c7dbcbe814e87e34db0f9a101d14c868e9aa538da8d47a798a4e8499fa
|
|
BLAKE2b-256 checksum How to use checksums |
cb3df6964048315da88fe92603c674ec64f106cc139624b47d4e871efb682653
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / imate-0.29.11-cp314-cp314-macosx_10_15_x86_64.whl
| Download URL | imate-0.29.11-cp314-cp314-macosx_10_15_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.14 macOS 10.15+ x86-64 |
|
SHA-256 checksum How to use checksums |
128ae756857dcf8be049843386bdc30419704516f3e4b98698aa0382c429a567
|
|
BLAKE2b-256 checksum How to use checksums |
fe2c9d1fa18024cdb0b768bb36defba4b5633344427b934d3ad06079085420b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / imate-0.29.11-cp313-cp313-win_amd64.whl
| Download URL | imate-0.29.11-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4c8fb3899c5db471e2d55e2c179d6528912bd731bada98ec52442bf3d9460f62
|
|
BLAKE2b-256 checksum How to use checksums |
07f721f15901153bad91d875c8efe0ccf2660839b3b33b8eb547ed35366835c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / imate-0.29.11-cp313-cp313-manylinux_2_34_x86_64.whl
| Download URL | imate-0.29.11-cp313-cp313-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.13 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
b869b7b2f2277f90ff738bf87a047f08c73983f5c558bf9e509420978c462adc
|
|
BLAKE2b-256 checksum How to use checksums |
ba14feff22d588d6d08871a8baa7fcc831b991d0dc9fb62a7d98e11037a52210
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / imate-0.29.11-cp313-cp313-macosx_10_13_x86_64.whl
| Download URL | imate-0.29.11-cp313-cp313-macosx_10_13_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.13 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
988e768851f0d851bf2b2d5d985bb66f7713d203638005cb364e61935cb6bcea
|
|
BLAKE2b-256 checksum How to use checksums |
c72fe27d81d40c617b13e300be788cf9bd380bbde540b08545a565e829ccbd85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / imate-0.29.11-cp312-cp312-win_amd64.whl
| Download URL | imate-0.29.11-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
247f225a903ef0a4fd9d6854e171254daf1657017963a28d77abdb4390466c7e
|
|
BLAKE2b-256 checksum How to use checksums |
7946bea0414bee2aad530fa760ab6b77f4096ed4cfc36bed9a6b9748eba0e51c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / imate-0.29.11-cp312-cp312-manylinux_2_34_x86_64.whl
| Download URL | imate-0.29.11-cp312-cp312-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.12 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
2b5686406a2ddff199d32012c576e084d82cdb1da4ee558f17f86f48de593e00
|
|
BLAKE2b-256 checksum How to use checksums |
4ce29e70002cdc0c8aeb69bdefc09ab053e2b8f1c63074480b2cf84e72c970b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / imate-0.29.11-cp312-cp312-macosx_10_13_x86_64.whl
| Download URL | imate-0.29.11-cp312-cp312-macosx_10_13_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.12 macOS 10.13+ x86-64 |
|
SHA-256 checksum How to use checksums |
9fcb75ec2d7f74540e4717edbd485a6c34e00f52817de46faa2cb1320e880084
|
|
BLAKE2b-256 checksum How to use checksums |
fdbd3c5cb3742e5e3b99b0d2ad07ec5f1774a0bc819353ca4e231bc881b75538
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / imate-0.29.11-cp311-cp311-win_amd64.whl
| Download URL | imate-0.29.11-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d44883270b86a73f4c5129f5dc65032c1be1ed665fa1ac6deca3afa20a5cca91
|
|
BLAKE2b-256 checksum How to use checksums |
34cfb7f1f3047ed2103c6e7a404bb37f53bbf36dc0ad4520aff532405b4664e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / imate-0.29.11-cp311-cp311-manylinux_2_34_x86_64.whl
| Download URL | imate-0.29.11-cp311-cp311-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.11 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
3bfc9dd9d78beff2adeb72a1da9d0dac742293304b4821ace17cd1a1b66c6f34
|
|
BLAKE2b-256 checksum How to use checksums |
e8b3b80d922225fa539be39a1230d3dee1fe3bff68df3b0f29c5723454deb996
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / imate-0.29.11-cp311-cp311-macosx_10_9_x86_64.whl
| Download URL | imate-0.29.11-cp311-cp311-macosx_10_9_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.11 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
8222083da03d3d78b228a6e6b69cd371c1108be09cf92c2b5d78e8d73dce5db6
|
|
BLAKE2b-256 checksum How to use checksums |
c0f90cfeeecfcde2081ce757d7f462f35aaa01bbd66c10e9e4f74b356ac89727
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / imate-0.29.11-cp310-cp310-win_amd64.whl
| Download URL | imate-0.29.11-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 2.5 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
340bfde38d38240d8844c1d01f0520bddac11de176a6644cca9b805a2e65e54b
|
|
BLAKE2b-256 checksum How to use checksums |
8b223f36cdf5ca701a19777023c693b837f40212896c6986491173271454c819
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / imate-0.29.11-cp310-cp310-manylinux_2_34_x86_64.whl
| Download URL | imate-0.29.11-cp310-cp310-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.10 Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
16a1121ac0dc601e22a99d50304242ce24b22df64193071c6c6bb19e1ea9458b
|
|
BLAKE2b-256 checksum How to use checksums |
eb0e7bfae5b8b775a5b72a4831a1bcfb541cc08fdf9854f4f56366dd52a71814
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / imate-0.29.11-cp310-cp310-macosx_10_9_x86_64.whl
| Download URL | imate-0.29.11-cp310-cp310-macosx_10_9_x86_64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.10 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
8a39081d6d2a280e832a3a468c2519ee1768f110e1dfff3da88c8017703b8b1b
|
|
BLAKE2b-256 checksum How to use checksums |
9e5e03b78292830207c0c2f9b43a6edbd030e07744ff5f8d65bd241ac60e3003
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for imate 0.29.11
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.