Skip to main content

The Blis BLAS-like linear algebra library, as a self-contained C-extension.

Project description

Cython BLIS: Fast BLAS-like operations from Python and Cython, without the tears

This repository provides the Blis linear algebra routines as a self-contained Python C-extension.

Currently, we only supports single-threaded execution, as this is actually best for our workloads (ML inference).

Azure Pipelines pypi Version conda Python wheels

Installation

You can install the package via pip, first making sure that pip, setuptools, and wheel are up-to-date:

pip install -U pip setuptools wheel
pip install blis

Wheels should be available, so installation should be fast. If you want to install from source and you're on Windows, you'll need to install LLVM.

Building BLIS for alternative architectures

The provided wheels should work on x86_64 and osx/arm64 architectures. Unfortunately we do not currently know a way to provide different wheels for alternative architectures, and we cannot provide a single binary that works everywhere. So if the wheel doesn't work for your CPU, you'll need to specify source distribution, and tell Blis your CPU architecture using the BLIS_ARCH environment variable.

a) Install with auto-detected CPU support

pip install spacy --no-binary blis

b) Install using an existing configuration

Provide an architecture from the supported configurations.

BLIS_ARCH="power9" pip install spacy --no-binary blis

c) Install with generic arch support

⚠️ generic is not optimized for any particular CPU and is extremely slow. Only recommended for testing!

BLIS_ARCH="generic" pip install spacy --no-binary blis

d) Build specific support

In order to compile Blis, cython-blis bundles makefile scripts for specific architectures, that are compiled by running the Blis build system and logging the commands. We do not yet have logs for every architecture, as there are some architectures we have not had access to.

See here for list of architectures. For example, here's how to build support for the Intel architecture knl:

git clone https://github.com/explosion/cython-blis && cd cython-blis
git pull && git submodule init && git submodule update && git submodule status
python3 -m venv venv
source venv/bin/activate
pip install -U pip setuptools wheel
pip install -r requirements.txt
./bin/generate-make-jsonl linux knl
BLIS_ARCH="knl" python setup.py build_ext --inplace
BLIS_ARCH="knl" python setup.py bdist_wheel

Fingers crossed, this will build you a wheel that supports your platform. You could then submit a PR with the blis/_src/make/linux-knl.jsonl and blis/_src/include/linux-knl/blis.h files so that you can run:

BLIS_ARCH="knl" pip install --no-binary=blis

Usage

Two APIs are provided: a high-level Python API, and direct Cython access, which provides fused-type, nogil Cython bindings to the underlying Blis linear algebra library. Fused types are a simple template mechanism, allowing just a touch of compile-time generic programming:

cimport blis.cy
A = <float*>calloc(nN * nI, sizeof(float))
B = <float*>calloc(nO * nI, sizeof(float))
C = <float*>calloc(nr_b0 * nr_b1, sizeof(float))
blis.cy.gemm(blis.cy.NO_TRANSPOSE, blis.cy.NO_TRANSPOSE,
             nO, nI, nN,
             1.0, A, nI, 1, B, nO, 1,
             1.0, C, nO, 1)

Bindings have been added as we've needed them. Please submit pull requests if the library is missing some functions you require.

Development

To build the source package, you should run the following command:

./bin/update-vendored-source

This populates the blis/_src folder for the various architectures, using the flame-blis submodule.

Updating the build files

In order to compile the Blis sources, we use jsonl files that provide the explicit compiler flags. We build these jsonl files by running Blis's build system, and then converting the log. This avoids us having to replicate the build system within Python: we just use the jsonl to make a bunch of subprocess calls. To support a new OS/architecture combination, we have to provide the jsonl file and the header.

Linux

The Linux build files need to be produced from within the manylinux2014 Docker container, so that they will be compatible with the wheel building process.

First, install docker. Then do the following to start the container:

sudo docker run -it quay.io/pypa/manylinux2014_x86_64:latest

Once within the container, the following commands should check out the repo and build the jsonl files for the generic arch:

mkdir /usr/local/repos
cd /usr/local/repos
git clone https://github.com/explosion/cython-blis && cd cython-blis
git pull && git submodule init && git submodule update && git submodule
status
/opt/python/cp36-cp36m/bin/python -m venv env3.6
source env3.6/bin/activate
pip install -r requirements.txt
./bin/generate-make-jsonl linux generic --export
BLIS_ARCH=generic python setup.py build_ext --inplace
# N.B.: don't copy to /tmp, docker cp doesn't work from there.
cp blis/_src/include/linux-generic/blis.h /linux-generic-blis.h
cp blis/_src/make/linux-generic.jsonl /

Then from a new terminal, retrieve the two files we need out of the container:

sudo docker ps -l # Get the container ID
# When I'm in Vagrant, I need to go via cat -- but then I end up with dummy
# lines at the top and bottom. Sigh. If you don't have that problem and
# sudo docker cp just works, just copy the file.
sudo docker cp aa9d42588791:/linux-generic-blis.h - | cat > linux-generic-blis.h
sudo docker cp aa9d42588791:/linux-generic.jsonl - | cat > linux-generic.jsonl

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

blis-0.9.1.dev1.tar.gz (3.6 MB view details)

Uploaded Source

Built Distributions

blis-0.9.1.dev1-cp310-cp310-win_amd64.whl (7.4 MB view details)

Uploaded CPython 3.10 Windows x86-64

blis-0.9.1.dev1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

blis-0.9.1.dev1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

blis-0.9.1.dev1-cp310-cp310-macosx_11_0_arm64.whl (893.6 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

blis-0.9.1.dev1-cp310-cp310-macosx_10_9_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

blis-0.9.1.dev1-cp39-cp39-win_amd64.whl (7.4 MB view details)

Uploaded CPython 3.9 Windows x86-64

blis-0.9.1.dev1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

blis-0.9.1.dev1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

blis-0.9.1.dev1-cp39-cp39-macosx_11_0_arm64.whl (892.9 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

blis-0.9.1.dev1-cp39-cp39-macosx_10_9_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

blis-0.9.1.dev1-cp38-cp38-win_amd64.whl (7.4 MB view details)

Uploaded CPython 3.8 Windows x86-64

blis-0.9.1.dev1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

blis-0.9.1.dev1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

blis-0.9.1.dev1-cp38-cp38-macosx_11_0_arm64.whl (887.5 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

blis-0.9.1.dev1-cp38-cp38-macosx_10_9_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

blis-0.9.1.dev1-cp37-cp37m-win_amd64.whl (7.4 MB view details)

Uploaded CPython 3.7m Windows x86-64

blis-0.9.1.dev1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

blis-0.9.1.dev1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

blis-0.9.1.dev1-cp37-cp37m-macosx_10_9_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

blis-0.9.1.dev1-cp36-cp36m-win_amd64.whl (7.4 MB view details)

Uploaded CPython 3.6m Windows x86-64

blis-0.9.1.dev1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

blis-0.9.1.dev1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ ARM64

blis-0.9.1.dev1-cp36-cp36m-macosx_10_9_x86_64.whl (5.3 MB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

Details for the file blis-0.9.1.dev1.tar.gz.

File metadata

  • Download URL: blis-0.9.1.dev1.tar.gz
  • Upload date:
  • Size: 3.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.9

File hashes

Hashes for blis-0.9.1.dev1.tar.gz
Algorithm Hash digest
SHA256 2af2c4837e39fae4df48ffedfb05cb70475f7da37cba60a45effcd31e6c40d3d
MD5 78cb3bef6e2302cbd5317d39c5e26e9d
BLAKE2b-256 02ce6420c5165017171ab1f22133c27d3d4f6a687892249e189611bdb83c20bc

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c325480d08f2ab593cc613dfd84b4dd08ee803f040fc87700fe1769986064091
MD5 6c416a1e64a6c6b55f25e40b5323df9f
BLAKE2b-256 17e4fe8c38d6fd0e3da2cb1c9570a4f037552474a8b076e7d222a91974246d19

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 816f54b07a1b9e799f6158f434464a4f0ad83774324a427a22a5066ce67c478f
MD5 ae70279c05d991f8bb89371bef247aae
BLAKE2b-256 47da8482d8eecffa19e0d3c323fdcc51cb3d05e7bf3eefa2c235937bcadf98d1

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0085187c9e59e89f5edd78799ff46a4c9ab5fa3d63d7e7151182d2453e2c0bff
MD5 1fac344f8e47218c33e7751393e837a9
BLAKE2b-256 fb002d9176b25ea630fa9a9c0b9ac90b2a98054147fda018fb8f2334ed7fce82

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b1e382ea8a23124cc6cba7b541c1a7c8a5da9d2e8a31959ff7fe7712a67d5664
MD5 c8ecc901077a37cafb155e8bd29bc2c7
BLAKE2b-256 cb1192eaa91b670c71f4c913a9a4a6597fe7ce9beda3abacb9b1ad92aef2cc2c

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d1336cce00a37702b256f928136fed47ceeb40319089ed27626ed98b8b4dbe33
MD5 3d442080b32c8c921d52c2b7aa595422
BLAKE2b-256 7119848e59b41a22f3293ec4d0b023a862cc22a73fd02d92a31ce0f4e61e56dd

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: blis-0.9.1.dev1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 7.4 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.9

File hashes

Hashes for blis-0.9.1.dev1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 68e745b7d71fa9873e13a7ebf9e66c25a2fa89abd76ac88391b3cc721d7e5489
MD5 024a22e9dac39206ae1502894e983fb0
BLAKE2b-256 ec934c6d8e6260d0b50d0b7a25c1f3565a6b13f0471a91e79d05b1c03a23a48d

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ebf805263112f1fe68264c4d0fe7d77c9a8657a1fa6f8a60fc72155b7075d636
MD5 c75b5030a59ebc26393d08516e1f545c
BLAKE2b-256 1186a49850ff11abe04d3bf16c9dc0051104cf65c4b9d7359ba9fb2fdc39c647

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 42a6bcdf316db636f8e8d157490ece24ddad58ddd08f4d1507f4a4b110b1b532
MD5 1edc80c4b8be8cc9c362718b9937e301
BLAKE2b-256 87ea9293f3d1005b8f76a30d4836366a20ea5d4600c8490824519b294e6ea1e9

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 77713986eac09d179fe743f4f7534d19f5ed28d8f80025d964fa45e9ce79b477
MD5 a48bc01ff186eb19ee523fe5781222b9
BLAKE2b-256 065fc07dd52ce92e857ae40a4596e65782b55d2d8afaee7580577a9a1082f8f9

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f9d690195810c89a9e9c495a7fc6dc190bf09d8b932fb9e7f1fbdbe962ce582d
MD5 2a79f6bec4605ddc03ddfb3b7094a8c9
BLAKE2b-256 5d4457219f230103b30b440ca344e287c1225de4c8668935de386f3670305da0

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: blis-0.9.1.dev1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 7.4 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.9

File hashes

Hashes for blis-0.9.1.dev1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 178b60530f608f69a6be66eb57f74955abb60cfacd48800de6ec0a7bb5f29540
MD5 6396f8e81cf9fc3248c25fd04267eceb
BLAKE2b-256 886d944cc3349c4b94aa27d4dab5401d3e80cc74ee8f0cbbb42b770c6655278b

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 20e9d2a0ff7fe730a9957754b213ea9cdb46a42452eaa30f805af4aa0da9c8cb
MD5 d56f930cfba2fef46b8ff9056cc7d2aa
BLAKE2b-256 8c268ce2304b8765f926d1c23ae12a32bff0886116cdeb9e2183d79223514444

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3d2607de469538ada5fba65f622f51428caaaa66486d30703698c31bba497c5d
MD5 1c8583866042dd5fb98e5cdb9fef09a8
BLAKE2b-256 c408d625fa8287a466fc90e88bc84257cc7abbd46ed27adcdb2ea1a13445fd28

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 04d3579a4c5811bca8fc5632776b401161b1b27c0067bd6c9e135378c7dab468
MD5 fc6be1133e35a6c9dec7d454933fcbe6
BLAKE2b-256 f2ea8d4f1406a9eaa6ab45ffe9d0d3fd60353f7deac5e9f451a363324a52984e

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cdb5ac5a648b0e110bd9c4b25675ca3934654ca4687e4ddb76e5f223a32d14f6
MD5 c74a119b88ce0423d4e505856cb7db62
BLAKE2b-256 4e93a7d0785866e98c19a36c16584a1b05d0fd23b33dc5e507423e08ab9912f6

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 d8cc8bc0ebc36a56d7912bf526a9b057374ef4f9bb78203af8c7b22f6cae1de4
MD5 1ee24eb2f92aba4f406cf2b4b19ed8c5
BLAKE2b-256 b7a42bb30e87a44819fa4033a6ca504d074175102dc3ae13a7de778b91c3b2ea

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3724a449bda103f582923148c7b6fbfb7548eb1bd08b3a86842e7a9616138063
MD5 f81dd1496e418a3c563c594467dc14e7
BLAKE2b-256 9b1bcf0a8ff70fb43c4df982cf8819d83712b6d2bda764c43beb8a59db46bf24

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 29db02e851eff101da96dd9219d738d01eceb2f1c88097143c1c932f971ef87a
MD5 0b12af93dded9a4df25f872ed7a39460
BLAKE2b-256 620d1aa333ae8a8b8f11e8794e4cb489ec4d1b7fac48b9d83480509f483a3592

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6d57db260e12a67741fd356cd0dd9e3d0e12ab1c4beec77270902c8ccaa6825f
MD5 4f14aeed542a9ee38966c46f4335595b
BLAKE2b-256 0116c824da5cf4ed33c278fe799960e794e7327ad81a5ef5bf3f788f1640d0f5

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 f7f20fe841b903d0eceb8de37baa5d33a097288b22b59dad808355bb1d1e6d96
MD5 92e6f45de4ddd8ef776cc6bd5fbeffca
BLAKE2b-256 6c86a3409a66aa552e7c05efb754eec8ec4600eeb4ccd77443cf5ac3bedca796

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 624b823830e98b20b8135192a5ee6358972419981720786a60567ed1e2b54972
MD5 fdffeba7833542d751df81fbfeee272a
BLAKE2b-256 aa89da84c65b077793100c6e6d4f60dac342c6ec4ac024d27276fe6cc79fa03e

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f4425fcfc9f853c3297d632bb60f855a6649dec5e71ec89e532bdd1f3a8a48fc
MD5 7a580578879e31577e652fc8d811e0bd
BLAKE2b-256 63663e0026c75b91da8c5f1e489154dde917bb394742df4f9637ccad0c8c1bd5

See more details on using hashes here.

File details

Details for the file blis-0.9.1.dev1-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for blis-0.9.1.dev1-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7c2c1743abe155fb6c933b4cdd16c652eb5e032fec7bbc375349b85fdc2d966c
MD5 98e685f52b6a496563bf5937f5374c4b
BLAKE2b-256 2a0d6e6ddfa3461d7d630c1aff01d1fe7848c85870ba8843453bfbccfc30ec30

See more details on using hashes here.

Supported by

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