Autonomys之家
AI3们的阵地

OULA欧拉Autonomy矿池 AI3操作方法和教程

介绍

Autonomys-farmer 包含以下组件

  • autonomys-controller 负责代理 node rpc,用于管理集群组件

  • sharded-cache piece 分片缓存

  • full-piece-sharded-cache piece 分片缓存全量节点

  • proof-server GPU 出块,用于计算 proof

  • plot-server plotting 服务,用于encode 数据

  • plot-client farming 组件,用于扫盘以及提交solution

架构

目前所有的集群管理都是基于 nats 来做的,但是 cache 的具体数据传输是通过 TCP 做 p2p 传输。

2849efbfe2154e7aff6b0f7720edf561
软件和硬件环境建议配置

本软件仅支持 Linux 操作系统,以及 Nvidia GPU 环境。

操作系统及依赖软件
  • Ubuntu 22.04

  • GPU 驱动版本 ≥ 525.60.13 ,或者直接安装 cuda 12.4

  • 文档系统 Ext4

  • Supervisor 4

  • Nats-server v2.10.22

  • numactl

22d0ba4e78ae970a3dd351f00e493cd2
环境介绍
服务器 ip 地址 配置 部署组件

节点机1

192.168.1.1

GPU * 1

controller autonomys-node

proof-server nats-server

节点机2

192.168.1.2

GPU * 1

controller autonomys-node

proof-server nats-server

节点机3

192.168.1.3

GPU * 1

controller autonomys-node

proof-server nats-server

P 盘机1

192.168.1.4

GPU * 4

autonomys-plot-server-0

autonomys-plot-server-1

autonomys-plot-server-2

autonomys-plot-server-3

sharded-cache full-piece-cache

P 盘机2

192.168.1.5

GPU * 4

autonomys-plot-server-0

autonomys-plot-server-1

autonomys-plot-server-2

autonomys-plot-server-3

sharded-cache full-piece-cache

存储机1

192.168.1.6

8T NVMe SSD * 4

/mnt/nvme0n1

/mnt/nvme0n2

/mnt/nvme1n2

/mnt/nvme1n1

autonomys-plot-client

存储机2

192.168.1.7

8T NVMe SSD * 4

/mnt/nvme0n1

/mnt/nvme0n2

/mnt/nvme1n1

/mnt/nvme1n2

autonomys-plot-client

Supervisor 配置
节点机配置

单台节点机需要部署4个部件 :controller autonomys-node proof-server nats-server

部署顺序 : nats-server -> autonomys-node -> controller -> proof-server

nats-server

本软件需要开启 nats-server jetstream 功能,启动 nats-server ,添加 flag即可启用--jetstream

nats-server 的配置请参考nats 官方文档 以及 autonomys nats 配置文档

以下是 nats-server 配置示例,供参考:

server_name=n1-cluster
max_payload = 3MB

jetstream {
   store_dir=/var/nats-data
}


cluster {
  name: c1-cluster
  listen: 0.0.0.0:4248
  routes: [
    nats://192.168.0.1:4248
    nats://192.168.0.2:4248
  ]
}

autonomys-controller

# autonomys-controller 配置
# /etc/supervisor/conf.d/autonomys-controller.conf

[program:autonomys-controller]
command=/root/autonomys/autonomys-farmer cluster --nats-server nats://192.168.1.1:4222 --nats-server nats://192.168.1.2:4222 --nats-server nats://192.168.1.2:4222 controller --tmp --node-rpc-url ws://10.30.1.2:9944
autorestart=true
user=root
redirect_stderr=true
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=2
stdout_logfile=/var/log/autonomys-controller.log

autonomys-node

# autonomys-node 配置
# /etc/supervisor/conf.d/autonomys-node.conf

[program:autonomys-node]
command=/root/autonomys/autonomys-node run --base-path /var/autonomys-node --farmer --rpc-listen-on 0.0.0.0:9944 --chain taurus --sync full --rpc-methods unsafe --rpc-cors all
autorestart=true
user=root
redirect_stderr=true
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=2
stdout_logfile=/var/log/autonomys-node.log

autonomys-proof-server

# autonomys-proof-server 配置
# /etc/supervisor/conf.d/autonomys-proof-server.conf

[program:autonomys-proof-server]
command=/root/autonomys/autonomys-farmer cluster --nats-server nats://192.168.1.1:4222 --nats-server nats://192.168.1.2:4222 --nats-server nats://192.168.1.2:4222 proof-server
autorestart=true
user=root
environment=CUDA_VISIBLE_DEVICES=0
redirect_stderr=true
stdout_logfile_maxbytes=500MB
stdout_logfile_backups=2
stdout_logfile=/var/log/autonomys-proof-server.log

启动命令参数和环境变量解释:

  • --nats-server 参数用于指定 nats 服务器地址

  • CUDA_VISIBLE_DEVICES 环境变量用于指定GPU,0表示GPU0,1表示GPU1,以此类推


P 盘机配置 (以 4 GPU为例)

单台P 盘机需要部署3个组件: ,,autonomys-plot-serverautonomys-sharded-cacheautonomys-full-piece-cache

autonomys-plot-server 组件从和组件获取 piece 用于 p 盘autonomys-sharded-cacheautonomys-full-piece-cache

autonomys-sharded-cache

# sharded-cache 配置
# /etc/supervisor/conf.d/autonomys-sharded-cache.conf

[program:autonomys-sharded-cache]
command=/root/autonomys/autonomys-farmer cluster --nats-server nats://192.168.1.1:4222 --nats-server nats://192.168.1.2:4222 --nats-server nats://192.168.1.2:4222 sharded-cache path=/var/autonomys-sharded-cache
autorestart=true
user=root
redirect_stderr=true
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=2
stdout_logfile=/var/log/autonomys-sharded-cache.log

启动命令参数解释 :

  • --nats-server参数用于指定 nats 服务器地址

  • path=/path/to/autonomys-sharded-cache参数用于指定 piece 缓存存储路径

autonomys-full-piece

# autonomys-full-piece 配置
# /etc/supervisor/conf.d/autonomys-full-piece.conf

[program:autonomys-full-piece]
command=/root/autonomys/autonomys-farmer cluster --nats-server nats://192.168.1.1:4222 --nats-server nats://192.168.1.2:4222 --nats-server nats://192.168.1.2:4222 full-piece-sharded-cache --tmp path=/var/autonomys-full-piece
autorestart=true
user=root
redirect_stderr=true
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=2
stdout_logfile=/var/log/autonomys-full-piece.log

启动命令参数解释 :

  • --nats-server 参数用于指定 nats 服务器地址

  • path=/path/to/autonomys-full-piece 参数用于指定 full-piece 存储路径

autonomys-plot-server

# autonomys-plot-server 配置文件
# /etc/supervisor/conf.d/autonomys-plot-server.conf

[group:autonomys-plot-server]
programs=autonomys-plot-server-0,autonomys-plot-server-1,autonomys-plot-server-2,autonomys-plot-server-3
[program:autonomys-plot-server-0]
command=numactl -C 0-31 -l /root/autonomys/autonomys-farmer cluster --nats-server nats://192.168.1.1:4222 --nats-server nats://192.168.1.2:4222 --nats-server nats://192.168.1.2:4222 plot-server --priority-cache --listen-port 9966 /var/plot-server/base-path-0
autorestart=true
user=root
environment=CUDA_VISIBLE_DEVICES=0
redirect_stderr=true
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=2
stdout_logfile=/var/log/autonomys-plotter-0.log

[program:autonomys-plot-server-1]
command=numactl -C 96-127 -l /root/autonomys/autonomys-farmer cluster --nats-server nats://192.168.1.1:4222 --nats-server nats://192.168.1.2:4222 --nats-server nats://192.168.1.2:4222 plot-server --priority-cache --listen-port 9967 /var/plot-server/base-path-1
autorestart=true
user=root
environment=CUDA_VISIBLE_DEVICES=1
redirect_stderr=true
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=2
stdout_logfile=/var/log/autonomys-plotter-1.log

[program:autonomys-plot-server-2]
command=numactl -C 96-127 -l /root/autonomys/autonomys-farmer cluster --nats-server nats://192.168.1.1:4222 --nats-server nats://192.168.1.2:4222 --nats-server nats://192.168.1.2:4222 plot-server --priority-cache --listen-port 9968 /var/plot-server/base-path-2
autorestart=true
user=root
environment=CUDA_VISIBLE_DEVICES=2
redirect_stderr=true
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=2
stdout_logfile=/var/log/autonomys-plotter-2.log

[program:autonomys-plot-server-3]
command=numactl -C 144-175 -l /root/autonomys/autonomys-farmer cluster --nats-server nats://192.168.1.1:4222 --nats-server nats://192.168.1.2:4222 --nats-server nats://192.168.1.2:4222 plot-server --priority-cache --listen-port 9969 /var/plot-server/base-path-3
autorestart=true
user=root
environment=CUDA_VISIBLE_DEVICES=3
redirect_stderr=true
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=2
stdout_logfile=/var/log/autonomys-plotter-3.log

启动命令参数和环境变量解释:

  • --nats-server 参数用于指定 nats 服务器地址

  • CUDA_VISIBLE_DEVICES 环境变量用于指定GPU,0表示GPU0,1表示GPU1,以此类推

  • GPU_CONCURRENCY 增大此值会提高显存使用量,在使用不同型号的 GPU 时,可以考虑适当调整该变量

需要注意的是, 使用 numactl 工具绑定 CPU 核心时,需考虑 GPU 的 numa 亲和性,以达到最佳性能。

使用 命令可以查看 GPU numa 亲和性nvidia-smi topo -m

# nvidia-smi topo -m
        GPU0    GPU1    NIC0    NIC1    CPU Affinity    NUMA Affinity   GPU NUMA ID
GPU0     X      SYS     NODE    NODE    0-47,96-143     0               N/A
GPU1     X      SYS     NODE    NODE    0-47,96-143     0               N/A
GPU2    SYS      X      SYS     SYS     48-95,144-191   1               N/A
GPU3    SYS      X      SYS     SYS     48-95,144-191   1               N/A
NIC0    NODE    SYS      X      PIX
NIC1    NODE    SYS     PIX      X

Legend:

  X    = Self
  SYS  = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
  NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
  PHB  = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
  PXB  = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
  PIX  = Connection traversing at most a single PCIe bridge
  NV#  = Connection traversing a bonded set of # NVLinks

NIC Legend:

  NIC0: mlx5_0
  NIC1: mlx5_1

存储机配置(以 4 盘为例)

autonomys-plot-client

# autonomys-plot-client 配置
# /etc/supervisor/conf.d/autonomys-plot-client.conf

[program:autonomys-plot-client]
command=/root/autonomys/autonomys-farmer cluster --nats-server nats://192.168.1.1:4222 --nats-server nats://192.168.1.2:4222 --nats-server nats://192.168.1.2:4222 plot-client --reward-address stBR..S8V  path=/mnt/nvme0n1/,sectors=8000 path=/mnt/nvme0n2/,sectors=8000 path=/mnt/nvme1n0/,sectors=8000 path=/mnt/nvme1n1/,sectors=8000
autorestart=true
user=root
redirect_stderr=true
stdout_logfile_maxbytes=100MB
stdout_logfile_backups=2
stdout_logfile=/var/log/autonomys-plot-client.log

启动命令参数解释 :

  • --nats-server 参数用于指定 nats 服务器地址

  • path=/path/to/plot-dir,sectors=8000 参数用于指定 plot 的文档路径以及 plot 的扇区数量

附录
使用命令

手动初始化集群,执行后会在n秒后重新初始化整个集群

autonomys-farmer util \
reinitialization-cache \
    --nats-servers nats://192.168.200.6:4222 \
    --delay 0

• :初始化延迟,单位:秒--delay 0

模拟 plot 的 download sector 过程,对 cache cluster 发起请求,检查集群状态

autonomys-farmer util \
sharded-cache-benchmark \
    --nats-servers nats://192.168.0.2:4222 \
    --sectors 256 \
    --epoch 1 \
    --cache-item-type split-parity-piece
赞(0)
未经允许不得转载:Autonomys 中文社区 » OULA欧拉Autonomy矿池 AI3操作方法和教程