GPU-плоттер
Autonomys использует хранилище накопителей, в частности SSD или NVMe для хранения участков. После того, как процесс плоттинга будет завершен, эти участки будут питаться процессором. Фарминг не является особенно требовательным для CPU, что позволяет большинству современных процессоров управлять значительными размерами плота. Тем не менее, процесс создания участка является весьма интенсивным с точки зрения ресурсов, что приводит к тому, что ЦП укладывает основные узкие места.
Использование GPU плоттинга позволяет использовать мощность совместимых GPU для генерации и отрисовки участков, либо в сочетании с процессором, либо в качестве его замены. Хотя многие современные процессоры могут завершить построение сектора менее чем за две минуты, единый высокопроизводительный GPU может выполнить одну и ту же задачу за пять секунд, значительно повышая эффективность и скорость.
Хотя построение графика на GPU не является обязательным, оно обеспечивает повышенную энергоэффективность и скорость по сравнению с использованием исключительно центрального процессора.
Совместимость платформ
Платформа | 🐧 Linux | 🪟 Windows | Nvidia | AMD | Intel |
---|---|---|---|---|---|
CLI | ✅ | ✅ | ✅ | 🛠️ | 🔮 |
Space Acres | ✅ | ✅ | ✅ | 🔜 | 🔮 |
🛠️ Limited AMD Support for Linux only is available in recent test builds. The most recent test builds are linked on the forum
See Discord farmer-chat channel for limited support.
Supported GPUs
- Nvidia
- AMD
- Intel
Series/Model | Supported |
---|---|
RTX 20xx and Newer | ✅ |
GTX 16 Series | ✅ |
Nvidia drivers version 550 or later are required. Installing the CUDA Toolkit is not required.
There are many challenges to overcome regarding AMD ROCm support. There is much more information on this topic on the forum.
You must be using the latest test build for AMD support.
Series/Model | Ubuntu | Windows |
---|---|---|
RX 7900 XTX | ✅ | ❌ |
RX 7600 XT | ✅ | ❌ |
RX 7600 | ✅ | ❌ |
RX 6800 | ✅ | ❌ |
RX 6700 XT | ❔ | ❌ |
RX 6600 XT | ✅ | ❌ |
RX 6600 | ✅ | ❌ |
RX 5700 XT | ❌ | ❌ |
RX 5700 | ❌ | ❌ |
RX 5600 | ❌ | ❌ |
AMD BC-250 | ❌ | ❌ |
- 🐧 Ubuntu
- 🪟 Windows
- 🐳 Docker
The subspace-farmer-rocm-*
binaries provide ROCm support, with corresponding CLI options similar to CUDA and prefixed with --rocm
.
-
In order to install necessary libraries go to Ubuntu native installation — ROCm installation (Linux) and follow these steps for your Ubuntu version:
- Package signing key
- Register ROCm packages You don't need a custom driver or full ROCm toolchain to use already compiled application, so skip all other steps.
-
Next install a single package with ROCm runtime:
sudo apt-get install --no-install-recommends hip-runtime-amd
And register the library so that farmer and other apps can find it:
echo "/opt/rocm/lib" | sudo tee /etc/ld.so.conf.d/rocm.conf > /dev/null
sudo ldconfig -
Then, to allow the user to access GPU for compute purposes, you need to add your user to render group (please never run farmer as root with sudo 🙏 ):
sudo usermod -a -G render $LOGNAME
-
Now you'll need to log out of your user profile and log back in or simply reboot for group changes to take effect and you're ready to go.
AMD GPUs on Windows (including through WSL) are not currently supported. We hope to add support in the future.
Cross-compilation no longer requires separate Dockerfiles (which is why they are removed), both native and cross-compilation is supported with a single file
Container image is now built as multi-platform, meaning no -aarch64 suffix and no awkwardness related to that
Aarch64 farmer container image is now compiled with CUDA support (while regular executable isn't)
Container image now ships with a second executable /subspace-farmer-rocm
(see explanation above as to why second binary is needed).
Here is how it can be used with Docker Compose, you can use this as an inspiration for other use cases:
services:
famer:
image: ghcr.io/autonomys/farmer:TAG
# Beginning of ROCm-specific options
devices:
- /dev/kfd:/dev/kfd
# This will make all GPUs accessible, you can also limit this
# to individual devices like `/dev/dri/renderD128`
- /dev/dri:/dev/dri
security_opt:
- seccomp:unconfined
# `root` user can be replaced with ID of the user on the host system
# that is in `render` group, needed to access `/dev/kfd` device
user: root
entrypoint: /subspace-farmer-rocm
# End of ROCm-specific options
...the rest of typical options you'd normally use
Intel Arc GPUs may be supported in the future, but specific compatibility details have not been announced yet.
Common Plotting Parameters
Enable CPU Plotting
When a compatible GPU is detected, CPU plotting is automatically disabled by default, but can be re-enabled if needed by specifying number of concurrently encoded sectors: --cpu-sector-encoding-concurrency <sectors>
--cpu-sector-encoding-concurrency 2
Disable GPU Plotting
--cuda-gpus ""
--cuda-gpus 99
Specify specific GPUs
Specify particular GPUs for plotting rather than using all available GPUs (the default configuration employs all compatible GPUs): --cuda-gpus <gpu_ids>
--cuda-gpus 0,1,3
Farming Cluster
When utilizing Farming Cluster, particularly with multiple or fast GPUs, you might encounter limitations due to your network's bandwidth. High performance GPUs can easily surpass the capacity of a 1G connection. While this won't cause the process to fail, it may result in your GPU idling as it waits for data to transfer. To optimize performance in such scenarios, consider upgrading to networking solutions of 2.5G, 10G, or higher.