An LLM inferencing benchmark tool focusing on device-specific latency and memory usage
Project description
Construe: An LLM Benchmark Utility
An LLM inferencing benchmark tool focusing on device-specific latency and memory usage.
Quick Start
This package is intended to be installed with pip
and it will create a command line program construe
on your $PATH
to execute benchmarking comamnds:
$ pip install construe
$ which construe
$ construe --help
There are several top-level configurations that you can specify either as an environment variable or a command line option before the command. The environment variables are as follows:
$CONSTRUE_ENV
or$ENV
: specify the name of the experimental environment for comparison purposes.$CONSTRUE_DEVICE
or$TORCH_DEVICE
: specify the name of the default device to use with PyTorch e.g. cpu, mps, or cuda.
The command line utility help is as follows:
Usage: construe [OPTIONS] COMMAND [ARGS]...
Options:
--version Show the version and exit.
-d, --device TEXT specify the pytorch device to run on e.g. cpu, mps or
cuda
-e, --env TEXT name of the experimental environment for comparison
(default is hostname)
-h, --help Show this message and exit.
Commands:
basic
moondream
Basic Benchmarks
The basic benchmarks implement dot product benchmarks from the PyTorch documentation. These benchmarks can be run using construe basic
; for example by running:
$ construe -e "MacBook Pro 2022 M1" basic -o results-macbook.pickle
The -e
flag specifies the environment for comparison purposes and the -o
flag saves the measurements out to disk as a Pickle file that can be loaded for comparison to other environments later.
Command usage is as follows:
Usage: construe basic [OPTIONS]
Options:
-e, --env TEXT name of the experimental environment for
comparison (default is hostname)
-o, --saveto TEXT path to write the measurements pickle data to
-t, --num-threads INTEGER specify number of threads for benchmark (default
to maximum)
-F, --fuzz / --no-fuzz fuzz the tensor sizes of the inputs to the
benchmark
-S, --seed INTEGER set the random seed for random generation
-h, --help Show this message and exit.
Moondream Benchmarks
The moondream package contains small image-to-text computer vision models that can be used in the first step of a content moderation workflow (e.g. image to text, moderate text). This benchmark executes the model for encoding and inferencing on a small number of images and reports the average time for both operations and the line-by-line memory usage of the model.
It can be run as follows:
$ construe moondream
Command usage is as follows:
Usage: construe moondream [OPTIONS]
Options:
-h, --help Show this message and exit.
Releases
To release the construe library and deploy to PyPI run the following commands:
$ python -m build
$ twine upload dist/*
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file construe-0.2.0.tar.gz
.
File metadata
- Download URL: construe-0.2.0.tar.gz
- Upload date:
- Size: 15.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec8dd39dd47bfbdec39335636e8e13d932dd85086e5608c4afbe8df845a450ad |
|
MD5 | 3f0505b8352a68e61de848ad437a2bfd |
|
BLAKE2b-256 | efb69841472fd0979c07a2514d246da1e5cc50957f26d1c2ddab84f969aa8ca9 |
File details
Details for the file construe-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: construe-0.2.0-py3-none-any.whl
- Upload date:
- Size: 14.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f8b2442a91c0d65c984180a56572b51baf6082b64cf5f8109b8bf4149d2d68d |
|
MD5 | 8aaf74b89e54d8a0fc9dfd38e57b5a79 |
|
BLAKE2b-256 | 37e1e5d0439475db4b5a6c1b6699de1917d751afe8f17fb0f8d24108112de6a4 |