Skip to main content

Implicit Matrix Trace Estimator. Computes the trace of functions of implicit matrices. Accelerated on CPU and CUDA-capable GPU devices.

Project description

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.

Install

Install with pip

pypi

pip install imate

Install with conda

conda-version

conda install -c s-ameli imate

Docker Image

docker-pull deploy-docker

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.9

3.10

3.11

3.12

3.8

3.9

3.10

Linux

X86-64

CPU

build-linux

GPU

AARCH-64

CPU

GPU

macOS

X86-64

CPU

build-macos

GPU 2

ARM-64

CPU

GPU 2

Windows

X86-64

CPU

build-windows

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.

1. Our wheels for PyPy are exclusively available through pip and cannot be installed using conda.
2. MacOS does not natively support NVIDIA GPUs.

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

Fermi

Kepler

Maxwell

Pascal

Volta

Turing

Ampere

Hopper

CUDA 9

CUDA 10

CUDA 11

CUDA 12

Documentation

deploy-docs binder

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

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

imate-0.25.2.tar.gz (381.5 kB view hashes)

Uploaded Source

Built Distributions

imate-0.25.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

imate-0.25.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl (2.2 MB view hashes)

Uploaded PyPy macOS 11.0+ ARM64

imate-0.25.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl (2.4 MB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

imate-0.25.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

imate-0.25.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl (2.2 MB view hashes)

Uploaded PyPy macOS 11.0+ ARM64

imate-0.25.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (2.4 MB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

imate-0.25.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

imate-0.25.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (2.4 MB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

imate-0.25.2-cp312-cp312-win_amd64.whl (2.7 MB view hashes)

Uploaded CPython 3.12 Windows x86-64

imate-0.25.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

imate-0.25.2-cp312-cp312-macosx_11_0_arm64.whl (2.4 MB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

imate-0.25.2-cp312-cp312-macosx_10_9_x86_64.whl (2.6 MB view hashes)

Uploaded CPython 3.12 macOS 10.9+ x86-64

imate-0.25.2-cp311-cp311-win_amd64.whl (2.7 MB view hashes)

Uploaded CPython 3.11 Windows x86-64

imate-0.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

imate-0.25.2-cp311-cp311-macosx_11_0_arm64.whl (2.4 MB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

imate-0.25.2-cp311-cp311-macosx_10_9_x86_64.whl (2.6 MB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

imate-0.25.2-cp310-cp310-win_amd64.whl (2.7 MB view hashes)

Uploaded CPython 3.10 Windows x86-64

imate-0.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

imate-0.25.2-cp310-cp310-macosx_11_0_arm64.whl (2.4 MB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

imate-0.25.2-cp310-cp310-macosx_10_9_x86_64.whl (2.7 MB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

imate-0.25.2-cp39-cp39-win_amd64.whl (2.8 MB view hashes)

Uploaded CPython 3.9 Windows x86-64

imate-0.25.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.2 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

imate-0.25.2-cp39-cp39-macosx_11_0_arm64.whl (2.4 MB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

imate-0.25.2-cp39-cp39-macosx_10_9_x86_64.whl (2.7 MB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page