下载客户端 · 下载 Markdown 原文
PRPNet 统一客户端 0.2
统一终端管理器:为 GFPS、GSRPS、GFPPS 和后续使用已注册引擎的项目提供项目开关、设置面板、单任务调度、进度与日志。
打开界面不会自动运行。默认三个项目全部 OFF,调度停止。 本机配置沿用原来的用户名、机器名、服务器地址、程序路径和任务目录,不复制、删除或重置已有任务。
完整包包含 Windows/Linux x86-64 的 GFPS、GSRPS、GFPPS 四组 CUDA 架构版本(sm_86 / 89 / 100 / 120),以及 PRST CPU。默认开启硬件自动选择;启动界面会读取公开 Queued 状态和检测本机硬件,但不会领取任务。
启动
Windows 双击 start.cmd,或在 Windows Terminal / CMD 中执行它。已安装依赖的本机可直接使用;首次在其他电脑安装时运行 setup_windows.cmd。
建议窗口至少 100 列 × 32 行,80 列窄终端仍可操作,表格和设置区可以滚动。支持鼠标点击、Tab、方向键及快捷键。
Linux / WSL / SSH:
sh setup_linux.sh
sh start.sh
Windows 与 Linux 使用独立配置和虚拟环境。Linux 虚拟环境默认放在 ~/.cache/prpnet-console/venv,避免 WSL 的 /mnt/d、/mnt/e 文件系统不支持符号链接的问题,可用 PRPNET_VENV 指定其他 Linux 路径。完整包会自动选择 bin/windows-x64 或 bin/linux-x64 中的程序,安装脚本会设置 Linux 执行权限。关闭自动选择后,可以自行指定现有程序路径。
若系统 Python 缺少 ensurepip/venv,请先激活已有 Conda 环境,或设置 PRPNET_PYTHON=/路径/python 再运行安装脚本;也可自行安装系统的 python3-venv 包。安装脚本不会擅自修改系统软件包。
常用操作
| 按键 |
功能 |
| 方向键 / 鼠标 |
选择项目 |
| Space |
开启/关闭所选项目接取 |
| E |
编辑项目设置,Ctrl+S 保存,Esc 取消 |
| A |
新增项目 |
| R |
启动调度 |
| P |
停止调度并请求当前任务安全中断、保留断点 |
| D |
停止领取新任务,让当前任务完成并提交 |
| C |
检查所选项目本地程序和参数,不联网、不计算 |
| F5 |
立即刷新全部项目的服务器 Queued 数量 |
| T |
清除所选项目的错误/等待状态,允许再次尝试 |
| Q / Ctrl+C |
请求保存断点,等待所管理子进程退出后关闭 |
关闭项目开关只影响下一次任务领取,不会强杀当前任务。立即停下请用 P。关闭全部项目不会删掉它们的设置、断点和待提交结果。
三页设置
项目与身份:项目 ID、名称、引擎、开关、轮询权重、服务器地址、用户名、机器名、任务目录。
计算与断点:GPU/CPU 后端、各自程序路径、CPU 线程、GPU duty、NTT blocks、窗口位、断点/anchor/进度间隔。
网络与保留:队列刷新间隔、心跳、租约、失败重试、无任务等待、提交确认后的缓存清理。
设置按引擎能力显示:GFPPS GPU 不能设置 duty 降载,但现在支持 PRST CPU 后端;窗口位仅 GSRPS 支持;anchor 仅 GFPS 支持;现有 GSRPS GPU 驱动不能配置进度打印间隔。CPU 最大 16 线程,默认 8 线程。
Queued 实时统计
默认每 5 秒向每个项目配置的 server_url/api/status 发起一次公开 GET 请求,可在“网络与保留”中调整为 1–3600 秒。关闭项目接取或暂停计算不会关闭队列查看。F5 可手动刷新。
Queued 为 0 表示服务器明确返回空队列;— 表示尚未成功获取。连接失败时保留上次值并加 *,详情中显示错误与最近成功更新时间,不把断线当作空队列。错误自动退避,并参考服务器 Retry-After。最多三个并发查询,不发送用户名、任务令牌或管理密码,不领取或提交任务。
如果旧域名仍指向被冻结的 Worker,会显示 HTTP 503;DNS/HTTPS 未配置好时会显示连接错误。请先完成域名配置,不要绕过证书校验。C 键本地检查本身不发任务请求,后台队列查询仍可继续。
自动选择与 CPU 回退
默认开启“自动选择 GPU / CPU 回退”。检测 NVIDIA 显卡计算能力、驱动和程序启动兼容性,从 sm_86、89、100、120 中选取同一主架构内最合适的兼容版本,不把显卡型号名称当作依据。包内程序启动前核对 SHA-256。
没有 NVIDIA GPU、架构不在支持范围、驱动不可用或所选 GPU 程序无法启动时,会弹出警告并使用 PRST CPU。可在设置中选择 CPU 后端或关闭自动选择,使用自定义程序路径。自动模式下也可以调整回退后的 CPU 线程数。
GPU 初始化类故障可以触发本次会话的 CPU 回退;数值校验失败不会被当作合数或自动忽略。CPU/GPU 的断点格式不同:切换后通常从头计算当前候选,各自的断点目录保留,直到结果被服务器确认。GFPPS CPU 使用 PRST 的 base-2 Fermat 测试并严格核对表达式与完成结果。
Linux 包需要兼容的系统运行库;若 GPU 和 PRST 都因系统/CPU 架构不兼容而不能运行,客户端会报错停止该项目,不会伪造回退成功。请安装兼容构建或从源代码构建。
运行中的任务继续使用启动时参数,新参数在下一任务周期或暂停后恢复时生效。存在未完成任务时,禁止直接修改服务器、身份、工作目录、后端和程序路径,以免错用任务令牌或断点。需要迁移这些字段时,应先处理待提交状态或进行专门迁移,不能删 current_task.json 来绕过保护。
调度与保护
- 全局同时只运行一个任务,避免三个 GPU 程序争抢显存。CPU 任务目前也占用同一个调度槽。
- 轮询权重按任务周期分配,不是 GPU 时间百分比;开启多个项目不会同时启动多个计算程序。
- 暂时无任务或网络出错的项目退避等待,其他启用的项目可继续参与调度。
- 计算、配置等本地错误会把该项目标为“需检查”,不会无限重复跑失败任务。检查后按 T 重试。
- 内存不足时不启动新计算;已有 GFPPS 待提交结果不要求 GPU 程序存在。
- 使用操作系统进程锁,并检查同类独立客户端。仍须先关闭原来的独立客户端,再用统一管理器,避免外部进程竞争。
- 暂停只向自己启动的进程组发送 Ctrl+Break / SIGINT,由原客户端继续转发给 GPU 程序。不会自动强杀,也不会改写异常为合数结果。若引擎不响应,界面保持等待,需人工检查。
- 日志保留有界内存缓冲,不无限积累;本次提交计数不是服务器的历史积分。
命令行方式
以下修改命令应在终端界面/调度器关闭后执行(Windows 使用 start.cmd;Linux 使用 sh start.sh):
start.cmd --status
start.cmd --enable gfps
start.cmd --disable gfpps
start.cmd --set gsrps duty_percent=70
start.cmd --set gfps share=200
start.cmd --run
无界面运行与 TUI 共用配置和调度核心,但这一版没有常驻服务 IPC;不能同时开第二个 TUI 修改正在无界面运行的管理器。
后续项目和统一域名
新增项目可以复用已注册的引擎,并设置不同服务地址、程序路径和独立任务目录。现有 GFPS 网络适配器仍固定为 GFN16;新增不同数学类型或协议需要编写并验证新的本地适配器,不能仅改名字就获得新算法。
默认服务地址为 https://prpnet.astralprisma.top/gfps、https://prpnet.astralprisma.top/gsrps、https://prpnet.astralprisma.top/gfpps,域名根路径是 PRPNet 总览;个人主页继续使用 https://astralprisma.top/。服务器按项目路径隔离任务与积分。DNS 和 HTTPS 配置完成后才可连接;不要绕过证书验证。
旧配置不会因安装新包而自动改写。已有待提交任务需要保留任务 ID、令牌、结果和工作目录,由迁移工具完整核验后再更换服务器绑定;不能删除任务状态来强行切换。
核心分层:settings.py 配置校验与保存,core.py 调度和进程生命周期,bridge.py 引擎/协议适配,tui.py 终端视图。vendor 保留已验证的原客户端和队列驱动;没有改动 CUDA 数值程序。未来 GUI 可以复用这些非界面模块。
文件与恢复
settings.json 为本机私密配置,保存时保留一份 settings.json.bak;runtime/ 是自动生成的单次运行配置。实际任务和 GPU 日志仍在各项目设置中的工作目录。不要把这些私密配置、任务令牌和工作目录上传 GitHub。
原 GFPS/GSRPS/GFPPS 目录及客户端没有被覆盖。恢复独立客户端前,先退出本管理器;任务目录保持原协议格式,可由原客户端继续处理。
统一客户端中的 GFPPS 适配器兼容此前 MiscWork→GFPPS 迁移留下的旧所有权标记:只在完整核对旧/新域名、用户、机器、任务 ID/UID、候选和待提交结果后,于显式运行时补建新标记。配置检查只读,不转换标记。这个修正仅包含在本管理器的适配器中,未覆盖独立 GFPPS 客户端。