Benchmark Numba, Taichi, Warp, CuPy Kernel, Triton using Mandelbrot set
Project description
mandelbrot-benchmark
Documentation: https://mandelbrot-benchmark.readthedocs.io
Source Code: https://github.com/34j/mandelbrot-benchmark
Benchmark Numba, Taichi, Warp, CuPy Kernel, Triton using Mandelbrot set
Results
- 200 iterations max
- $c \in [-2, 1] \times [-1.5, 1.5]$
- JAX version is quite hacky ("vectorized")
JAXversion is omitted because it makes the benchmark unstable (see previous release for the comparison)- AMD Ryzen 9 3950X + NVIDIA GeForce RTX 4070 SUPER
- The results are almost identical when
device = cuda - The computation time for
Numbais quite unstable
Some notes
- In
Numba, the type of variables needs to be explicitly specified to usefloat32instead offloat64(default), while is not the case forTaichi,Warp.
Installation
Install this via pip (or your favourite package manager):
pipx install mandelbrot-benchmark
Usage
Run the benchmark and plot the results:
mandelbrot-benchmark benchmark
mandelbrot-benchmark plot
Alternatives
- YanagiAyame/python-mandelbrot-benchmark: Which is better, Numba, Taichi, Warp or JAX?
- mandelbrot-on-all-accelerators.ipynb
Contributors ✨
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!
Credits
This package was created with Copier and the browniebroke/pypackage-template project template.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mandelbrot_benchmark-1.1.1.tar.gz.
File metadata
- Download URL: mandelbrot_benchmark-1.1.1.tar.gz
- Upload date:
- Size: 12.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2eb85f85638484e90fc42967b0ee919b163644b570bb89b41a0537f32471b919
|
|
| MD5 |
72ef872f4dc12b3a8ddd397aefab62e4
|
|
| BLAKE2b-256 |
62c69a13722193892f806ed543023c485d710086dbb28dd2c33e48f426a3030e
|
Provenance
The following attestation bundles were made for mandelbrot_benchmark-1.1.1.tar.gz:
Publisher:
ci.yml on 34j/mandelbrot-benchmark
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mandelbrot_benchmark-1.1.1.tar.gz -
Subject digest:
2eb85f85638484e90fc42967b0ee919b163644b570bb89b41a0537f32471b919 - Sigstore transparency entry: 421277291
- Sigstore integration time:
-
Permalink:
34j/mandelbrot-benchmark@96e415db11cf335a4a9ce70a40e8c0afe6b9be72 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/34j
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@96e415db11cf335a4a9ce70a40e8c0afe6b9be72 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mandelbrot_benchmark-1.1.1-py3-none-any.whl.
File metadata
- Download URL: mandelbrot_benchmark-1.1.1-py3-none-any.whl
- Upload date:
- Size: 10.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d82324ee462bb98e9695739d6ef554e16baf9cfa15b6dccddc1c68be7dc707e
|
|
| MD5 |
3150afe2ce63c9181485529740d6874c
|
|
| BLAKE2b-256 |
039c9ac2e6efdfe037080c0404efdd12f372e8cc2ec921ec3989442d3f2622be
|
Provenance
The following attestation bundles were made for mandelbrot_benchmark-1.1.1-py3-none-any.whl:
Publisher:
ci.yml on 34j/mandelbrot-benchmark
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mandelbrot_benchmark-1.1.1-py3-none-any.whl -
Subject digest:
1d82324ee462bb98e9695739d6ef554e16baf9cfa15b6dccddc1c68be7dc707e - Sigstore transparency entry: 421277320
- Sigstore integration time:
-
Permalink:
34j/mandelbrot-benchmark@96e415db11cf335a4a9ce70a40e8c0afe6b9be72 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/34j
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@96e415db11cf335a4a9ce70a40e8c0afe6b9be72 -
Trigger Event:
push
-
Statement type: