You've already forked FrameTour-RenderWorker
- 新增 GPUDevice 数据类定义 GPU 设备信息 - 扩展 WorkerConfig 添加 gpu_devices 配置项 - 从环境变量 GPU_DEVICES 读取多显卡设备配置 - 实现 GPUScheduler 提供轮询调度功能 - 修改 FFmpeg 参数生成支持设备指定 - 添加线程本地存储管理当前 GPU 设备 - 更新任务执行器集成 GPU 设备分配 - 实现 GPU 设备自动检测和验证功能 - 添加相关日志记录和状态监控
32 lines
787 B
Python
32 lines
787 B
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
GPU 设备模型
|
|
|
|
定义 GPU 设备的数据结构。
|
|
"""
|
|
|
|
from dataclasses import dataclass
|
|
from typing import Optional
|
|
|
|
|
|
@dataclass
|
|
class GPUDevice:
|
|
"""
|
|
GPU 设备信息
|
|
|
|
Attributes:
|
|
index: 设备索引(对应 nvidia-smi 中的 GPU ID)
|
|
name: 设备名称(如 "NVIDIA GeForce RTX 3090")
|
|
memory_total: 显存总量(MB),可选
|
|
available: 设备是否可用
|
|
"""
|
|
index: int
|
|
name: str
|
|
memory_total: Optional[int] = None
|
|
available: bool = True
|
|
|
|
def __str__(self) -> str:
|
|
status = "available" if self.available else "unavailable"
|
|
mem_info = f", {self.memory_total}MB" if self.memory_total else ""
|
|
return f"GPU[{self.index}]: {self.name}{mem_info} ({status})"
|