CPU, GPU, and NPU hardware topology and telemetry for Python.
Project description
Installation
pip install mainboard
Working in a chefe project? Add it to your manifest:
chefe add mainboard -l python
On Linux the CUDA bindings install automatically, so NVIDIA GPUs are detected out of the box. On macOS nothing CUDA-related is pulled in, and provider detection degrades gracefully when no NVIDIA GPU is present.
What it is
mainboard tells Python what compute is on the current machine, without assuming the world is only CUDA. It models CPUs, GPUs, and NPUs as Units, keeps vendor-specific probing behind providers (Apple and NVIDIA today), and gives you the whole board in one call.
from mainboard import Machine
print(Machine().model_dump_json(indent=2)) # cpu, memory, gpus, npus, and the host environment
Usage
machine = Machine()
machine.cpu.snapshot() # CPU identity and capacity
machine.gpus[0].snapshot() # per-GPU telemetry
machine.environment # user, group(s), and job scheduler on the host
machine.model_dump_json() # one-call JSON probe of the whole machine
The CLI renders a Rich schematic of the board:
mainboard
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 mainboard-0.0.5.tar.gz.
File metadata
- Download URL: mainboard-0.0.5.tar.gz
- Upload date:
- Size: 111.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c7787acfc3911b1b89be1446fc5ac28bb397fb5ea8bb5b9c576016363dd470a
|
|
| MD5 |
4039de7108c220f29333a02ac56d7f14
|
|
| BLAKE2b-256 |
0e12a0cef9b66027916b13920ce9aa0e7b32c40ea839a8bcd2f592c865d07e0b
|
Provenance
The following attestation bundles were made for mainboard-0.0.5.tar.gz:
Publisher:
publish.yml on phvv-me/mainboard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mainboard-0.0.5.tar.gz -
Subject digest:
3c7787acfc3911b1b89be1446fc5ac28bb397fb5ea8bb5b9c576016363dd470a - Sigstore transparency entry: 1776292736
- Sigstore integration time:
-
Permalink:
phvv-me/mainboard@f4e7bad0d5e8a22605b539297b0d3dc0523105ba -
Branch / Tag:
refs/heads/main - Owner: https://github.com/phvv-me
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f4e7bad0d5e8a22605b539297b0d3dc0523105ba -
Trigger Event:
push
-
Statement type:
File details
Details for the file mainboard-0.0.5-py3-none-any.whl.
File metadata
- Download URL: mainboard-0.0.5-py3-none-any.whl
- Upload date:
- Size: 102.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96bea307ab66284ca33482e858eec2d0797e5aff852ceae046082363b29e5c07
|
|
| MD5 |
9997630c59c9524531321c4aaac37358
|
|
| BLAKE2b-256 |
f95e1ffee27bd18500fd1b5fe1c5f8d7290d078928bf778fda83a17a5be8b979
|
Provenance
The following attestation bundles were made for mainboard-0.0.5-py3-none-any.whl:
Publisher:
publish.yml on phvv-me/mainboard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mainboard-0.0.5-py3-none-any.whl -
Subject digest:
96bea307ab66284ca33482e858eec2d0797e5aff852ceae046082363b29e5c07 - Sigstore transparency entry: 1776292875
- Sigstore integration time:
-
Permalink:
phvv-me/mainboard@f4e7bad0d5e8a22605b539297b0d3dc0523105ba -
Branch / Tag:
refs/heads/main - Owner: https://github.com/phvv-me
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f4e7bad0d5e8a22605b539297b0d3dc0523105ba -
Trigger Event:
push
-
Statement type: