opentensor / cubit

A Cython library to solve the Bittensor registration POW on CUDA
MIT License
11 stars 9 forks source link

cubit

A python package to register on the bittensor network using a CUDA device.

Requirements

Building docker image

  1. Change the base image to the target bittensor version
  2. Build the image:
    1. sudo docker build -t opentensorfdn/bittensor:VERSION_BT-cubitVERSION_CUBIT -f ./docker/Dockerfile .
  3. Push the image
    1. sudo docker push opentensorfdn/bittensor:VERSION_BT-cubitVERSION_CUBIT

Install

Using the wheel for your version of python (3.8, etc.) from releases
For Python 3.8

pip install https://github.com/opentensor/cubit/releases/download/v1.1.2/cubit-1.1.2-cp38-cp38-linux_x86_64.whl

For Python 3.9

pip install https://github.com/opentensor/cubit/releases/download/v1.1.2/cubit-1.1.2-cp39-cp39-linux_x86_64.whl

For Python 3.10

pip install https://github.com/opentensor/cubit/releases/download/v1.1.2/cubit-1.1.2-cp310-cp310-linux_x86_64.whl

Install testing dependencies

Install test extras from wheel For Python 3.8

pip install https://github.com/opentensor/cubit/releases/download/v1.1.2/cubit-1.1.2-cp38-cp38-linux_x86_64.whl[test]

For Python 3.9

pip install https://github.com/opentensor/cubit/releases/download/v1.1.2/cubit-1.1.2-cp39-cp39-linux_x86_64.whl[test]

For Python 3.10

pip install https://github.com/opentensor/cubit/releases/download/v1.1.2/cubit-1.1.2-cp310-cp310-linux_x86_64.whl[test]

From source

Requirements

You can check if you have cuda-toolkit with

nvcc --version

Clone repo

git clone https://github.com/opentensor/cubit.git

Enter dir

cd cubit/

Install as editable

pip install -e .

Install testing dependencies

Install test extras as editable

pip install -e .[test]

Unit Testing

Testing uses unittest as there is an issue with pytest and Cython compatability

python3 -m unittest test.py

Acknowledgments

https://github.com/rmcgibbo/npcuda-example/
https://github.com/mochimodev/cuda-hashing-algos/
https://github.com/camfairchild/bittensor_register_cuda/