CUDAAAAGH (Centralized Underage Distributed Arithmetic - Automated Assignment And Group Hashing)
CUDAAAAGH allows you to distribute arithmetic computations across a network of children doing their maths homework Computation Partners by replacing Python's standard integer operations with remote calls to a manual computation server.
This allows you mine Bitcoin or train AI models for free.
CUDAAAAGH includes:
- A custom integer type (
CUDAAAAGHInt) that provides standard arithmetic operations - A manual computation server for processing arithmetic operations
- An implementation of SHA-256 using only basic arithmetic operations
- Support for bitwise operations decomposed into simple arithmetic
See my blog post introducing CUDAAAAGH and my new company MinorMiner for more details.
Installation
pip install CUDAAAAGH
Quick Start
- Start the computation server:
from CUDAAAAGH import start_server
import asyncio
if __name__ == "__main__":
asyncio.run(start_server(host="127.0.0.1", port=8000))
- In another terminal, use CUDAAAAGH for computations:
from CUDAAAAGH import CUDAAAAGHInt, set_compute_endpoint
# Configure the endpoint
set_compute_endpoint("http://localhost:8000/compute")
# Basic arithmetic
a = CUDAAAAGHInt(10)
b = CUDAAAAGHInt(5)
# Any computation will be performed remotely by a Computation Partner/child
# doing their maths homework!
#
# This will take a few seconds for a Computation Partner to solve:
result = a + b
print(f"10 + 5 = {result}")
# This will take a few thousand years or so:
hash_result = sha256("Hello!", CUDAAAAGHInt)
print(f"SHA-256 hash: {hash_result}")
Features
- Basic Arithmetic: Addition (
+), Subtraction (-), Multiplication (*), Floor Division (//) - Bitwise: AND (
&), OR (|), XOR (^), Left Shift (<<), Right Shift (>>) - Comparison: Equal to (
==), Greater than (>), Less than (<), Greater than or equal to (>=), Less than or equal to (<=)
Advanced Features
- SHA-256 implementation using only basic arithmetic
- Parallel computation support using futures
- Automatic operation decomposition
Development
- Clone the repository:
git clone https://github.com/robert/CUDAAAAGH.git
cd CUDAAAAGH
- Install development dependencies:
pip install -e ".[dev]"
- Run tests:
pytest
Contributing
Contributing to this project is unlikely to be a good use of your time. But if you insist:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
Author
Robert Heaton (blog, @robjheaton)
Release files for CUDAAAAGH 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cudaaaagh-0.1.4.tar.gz | 1.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cudaaaagh-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.0 MB
Release files / cudaaaagh-0.1.4.tar.gz
| Download URL | cudaaaagh-0.1.4.tar.gz |
|---|---|
| Size | 1.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
be9f495eeaf396caa13adc73b7fd7fdcaa3df0e168bd6617570a2064bb7c715a
|
|
BLAKE2b-256 checksum How to use checksums |
7af4af72fb1185a462e682604b28eccaeed3065de70e3085273fbecac22f5858
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.13.0
|
Release files / cudaaaagh-0.1.4-py3-none-any.whl
| Download URL | cudaaaagh-0.1.4-py3-none-any.whl |
|---|---|
| Size | 6.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
21309fecc80d1345158c5a167194d4a2e8ae1d549fc5fc01d21ea6b709442176
|
|
BLAKE2b-256 checksum How to use checksums |
21452e6057a7039511e51bc6605a6f711e501f94f6ed9e9bbfc3d6fd08c11234
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.13.0
|