Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
vans163 authored May 7, 2022
1 parent b7d14a5 commit 393f5eb
Showing 1 changed file with 132 additions and 2 deletions.
134 changes: 132 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,132 @@
# farm
Metal at the edge
# Farm

Metal at the edge.

Provider
![image](https://user-images.githubusercontent.com/3028982/167263971-6c9f15f0-b25e-4c1d-9ca2-9168a0ef7705.png)

Consumer
![image](https://user-images.githubusercontent.com/3028982/167263995-9afa96de-7d96-4568-9d54-650aabb46d35.png)
![image](https://user-images.githubusercontent.com/3028982/167264063-fbc572d7-8d69-45f0-9e74-7dd5c4c62ff3.png)

## Changelog
v0.0.9 - May 7th, 2022
```
Major reworking
- Preparation for first point release
- Nodes are independent providers
- All job requests go to nodes directly
- Added revamped dashboard native to running node
- Added implicient subtype for jobs (javascript of dashboard handles)
- blender
- juypter
- livebook
- Added native storage called GPUX (hope to replace private IPFS)
- Added folder mounts (for persistent storage between container runs)
- Removed offchain endpoint
- Removed autoupdate
- Removed global job queuing
- Removed job payment settlement for now ($0 jobs)
- Removed IPFS (not working well)
Status
Docker (working)
Transcode (not working)
Live (not working)
```

v0.0.7 - February 9rd, 2022
```
IPFS support
```

v0.0.6 - February 3rd, 2022
```
Added better NVENC support detection
Fix cgroupsv2 detection
Fix Tesla GPU detection
Fix estimated price calculation
Add GPU price table support
Add Podman Args
Require kernel 5.11 now
```

v0.0.5 - January 12th, 2022
```
Added auto update support
```

v0.0.4 - January 11th, 2022
```
Added compute GPU support
Added trex for eth ( ETHADDR=0x.. )
```

v0.0.3 - December 31st, 2021
```
Added video transcode and live streaming
```

## Introduction to Compute
The GPUX Farm runs any code that can be containerized. You are not restricted to running WASM binaries or other derivatives. Using GPUs you have the following caps `NVIDIA_DRIVER_CAPABILITIES=utility,compute,graphics,video`, let us know if your usecase requires the `display` cap.

## Features
- [X] GPUX API (API exposed via /api tcp-unix-socket inside container)
- [X] docker containers /w GPU (podman)
- [ ] transcode video (ffmpeg)
- [ ] live streaming (basic features)
- [ ] live streaming recording
- [ ] encrypted_vm (AMD SEV) jobs are not supported yet.
- [ ] encrypted_container (SGX) jobs are not supported yet.

## GPUX File Management
GPUX API is exposed inside the container as a tcp-unix domain socket at `/api`.
(currently GPUX File Management is node local, if you change nodes your files and persistent storage will change)

Inside container
```
#Download a file
curl --unix-socket /api "http://dontcare/gpux/v0/cat/sha1hash" --output myfile.png
#Upload a file and get sha1
curl -s --unix-socket /api -X POST --data-binary @myfile.png "http://dontcare/gpux/v0/add" | jq -r '.sha1'
```

Outside container
```
#Download a file
http://{node_ip_port}/download_file/sha1
#Upload a file to GPUX and get sha1
curl -d @myfile.png http://{node_ip_port}/upload_file | jq -r '.sha1'
```

Persistent folder inside Container bound to your ed25519 identity
```
/persist
```

## How to run jobs on the edge
Visit https://github.com/gpuedge/examples to see examples of running workloads like blender, machine learning, and more.

## How to join the edge
Download the release and run ./farm, then ping on discord to get added to the beta node list.

## Environmental Variables

```
//Farm
WORKFOLDER - Path to store misc items, disk images and non podman storage (default ~/.cache/gpux)
LOG_LEVEL - How verbose to log 1 | 2 | 3 (default 1)
//Network Interfaces
HTTP_IPV4 - IP interface/alias to bind on (default "0.0.0.0")
HTTP_PORT - Port (default 80)
(SSL optional)
HTTPS_DOMAIN - Domain name pointing to your node
HTTPS_IPV4 - IP interface/alias to bind on (default "0.0.0.0")
HTTPS_PORT - Port (default 443)
HTTPS_CERT - HTTPS Certificate path (default $WORKFOLDER/fullchain.pem)
HTTPS_KEY - HTTPS Certificate path (default $WORKFOLDER/privkey.pem)
```

0 comments on commit 393f5eb

Please sign in to comment.