index.rst 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. ## What do I need to run it?
  2. - One or several computers, each equipped with at least one GPU
  3. - Each computer should have at least two open ports (if not, consider ssh port
  4. forwarding)
  5. - Some popular Linux x64 distribution
  6. - Tested on Ubuntu16.04, should work fine on any popular linux64 and even
  7. MacOS;
  8. - Running on Windows natively is not supported, please use vm or docker;
  9. ## How do I run it?
  10. Currently, there is no way to do it easily. There are some tests (you can check [`./tests/benchmark_throughput.py`](./tests/benchmark_throughput.py)
  11. or look into CI logs) and we want to expand them. If you want to
  12. do something complex with it, please contact us by opening an issue (less preferred: [telegram](https://t.me/justheuristic)).
  13. ## `tesseract` quick tour
  14. **Trainer process:**
  15. - **`RemoteExpert`**(`tesseract/client/remote_expert.py`) behaves like a pytorch
  16. module with autograd support but actually sends request to a remote runtime.
  17. - **`GatingFunction`**(`tesseract/client/gating_function.py`) finds best experts
  18. for a given input and either returns them as `RemoteExpert` or applies them
  19. right away.
  20. **Runtime process:**
  21. - **`TesseractRuntime`** (`tesseract/runtime/__init__.py`) aggregates batches
  22. and performs inference/training of experts according to their priority.
  23. - **`TesseractServer`** (`tesseract/server/__init__.py`) wraps runtime and
  24. periodically uploads experts into `TesseractNetwork`.
  25. **DHT:**
  26. - **`TesseractNetwork`**(`tesseract/network/__init__.py`) is a node of
  27. Kademlia-based DHT that stores metadata used by trainer and runtime.
  28. ## Limitations
  29. **DHT**:
  30. - DHT functionality is severely limited by its inability to traverse NAT.
  31. - Because of this all the features that require DHT are in deep pre-alpha state
  32. and cannot be used without special setup.
  33. **Runtime**:
  34. * You can achieve 4x less network load by passing quantized uint8 activations across experts.
  35. Implement your own quantization or wait for tesseract v0.8.
  36. * Currently runtime can form batches that exceed maximal batch_size by task_size - 1.
  37. We will fix that in the nearest patch.