填写Orion环境变量

更新时间:

参考本节填写Orion环境变量。

环境变量名 特性 参考值 配置含义
ORION_RES_SHARED_ALL 超分 0/1 =1 本次申请资源允许使用超分算力+超分显存
=0 等同于未设置此项配置。由其他超分调度策略生效或者controller全局指定
ORION_RES_SHARED_CORE 超分 0/1 =1 本次申请资源允许使用超分算力(计算过程中共享算力),但不允许使用超分显存(内存)
=0 等同于未设置此项配置。由其他超分调度策略或者controller全局指定。
ORION_DRIVER_CAPABILITIES 自定义driver能力 无默认值 同nvidia runtime的NVIDIA_DRIVER_CAPABILITIES,当配置为video时,runtime部署时,会在用户容器内挂载libnvcuvid.so,以及libnvidia-encode.so
ORION_TASK_CLASS_AFF 亲和性 无默认值 - 依据亲和性的亲和关系,controller尽可能在分配资源时,把“具备亲和性”的任务分配到同一个物理GPU上
有效格式如下:
export
ORION_TASK_CLASS_AFF=my_class_id_a,other_class_id_b,other_class_id_c,other_class_id_d
- value为字符串形式,以逗号分割,字符串长度不要超过256字节
- value中,第一个字段值(第一个逗号前)为本任务的class_id,后续字段为 “可亲和的其他class_id”
- 不设置此环境变量即为无亲和性,不添加此项筛选条件,调度随机
- 具备ORION_RES_EXCLUSIVE = 1 资源独占的任务,不受此亲和性的调度影响
使用办法:
- 亲和性class_id 成对出现,尽可能确保成对的 “低频高优先级和高频低优先级”任务一起亲和分配
- 单个class_id可应用于多个任务
- 亲和性class_id 生效条件必须是多任务之间相互亲和,单方面亲和不具备效能
ORION_SCHEDULE_RULE 环境变量优先级高于此亲和性class。
ORION_TASK_CLASS_ANTI_AFF 亲和性 无默认值 设置用户任务的反亲和性设备分配:用户可通过该环境变量指定当前pod中任务与其他pod中任务强制(required语义)不分配到相同的物理设备上。
ORION_RES_PRIORITY 抢占 5 设置任务优先级。该环境变量的合法值为 0 到 9,0 最高,9 最低,不设置默认为 5。
ORION_TASK_RUNTIME_PRIORITY 超分 0~65535(默认0) 使用办法:
- 任务运行优先级数值越小,优先级越高,0为最高优先
- 同一个物理GPU下,多任务同时调度在此物理卡上;优先级高的任务且本时间周期内发现API调用,则本时间周期内优先使用GPU算力,直到某个周期内运算结束(API调用结束,但任务不结束),优先级低的任务才能继续运行
- 优先级低的任务,会出现类似暂停的效果,暂停期间,任务并没有终止或者返回失败,仅显存文件移动至内存,算力暂停
- 待优先级高的任务完成本次计算后,优先级低的任务如果出现API调用或有API等待结果,优先级低任务继续运算
- 同一个物理GPU场景下,优先级相同的任务,共享物理GPU的平等优先权,继续依据算力ratio,切分时间片。
ORION_RES_GROUP 抢占 无默认值 设置client端申请的资源所属的GROUP。
ORION_RES_QUEUE_TIME 抢占 无默认值 设置异步任务排队时间。该环境变量的合法值为数字,单位默认为分钟,可以在数字后面加单位 m、h、d,分别表示分钟、小时、天。当设置了此环境变量时,本次任务才有可能在调度失败时去尝试抢占其他更低优先级的任务。
ORION_ACTIVELY_PREEMPT 抢占 true/false 设置任务积极抢占。该环境变量的合法值为 true 或者 false。当环境变量为 true 且设置了 ORION_RES_PRIORITY 时,本次任务在调度失败时就会去尝试抢占其他更低优先级的任务。
ORION_CANNOT_BE_PREEMPTED 抢占 true/false 设置任务不允许被抢占。该环境变量的合法值为 true 或者 false。当环境变量为 true 时,表示本次任务不允许被其他任务抢占。
ORION_CROSS_NODE 调度 0/1 设置任务是否可以使用跨节点的 GPU 资源,可用于资源池中剩余 GPU 较分散场景。
=1 生效
=0 等同于未设置。默认情况就是未设置
ORION_PROTOCOL 调度 cuda2x 配置为 cuda2x 并同时配置 ORION_DEVICE_TYPE=MIXED 时,表示支持在 DCU 卡上执行 CUDA 版本的 TF 和 PyTorch 程序。若不配置,则默认在 GPU 卡上执行。
ORION_PIN_MEM 跨节点调度 =true/false 该环境变量的合法值为 true 或者 false。当环境变量为 true, OrionX调度模式将自动设置为local-only,让任务本机执行,保证高性能。
ORION_SERVERMIG_FILE_MODE 跨节点调度 =7 设置环境变量ORION_SERVERMIG_FILE_MODE=7,优先选择dump到server端共享内存。(需要确保server端shm足够,使用的是主机shm)
ORION_TASK_END_TIME 跨节点调度 YYYY-mm-dd HH:MM:SS 或者 HH:MM:SS 在client engine全局变量中增加 uint64_t task_end_time 成员,用于存储任务结束的事件戳,0 表示未设置timer,大于0表示计时到该事件戳时在client 端自动 exit。
在Client runtime初始化时检查环境变量 ORION_TASK_END_TIME ,支持 YYYY-mm-dd HH:MM:SS 或者 HH:MM:SS 两种格式的字符串。两种格式都使用当前 shell的时区。
对于 YYYY-mm-dd HH:MM:SS 格式,则按照指定事件结束任务。
对于 HH:MM:SS 格式,则判断如果该时间是当天的未来时间,则在当天第一次到达该时间时结束任务。如果该事件时当天时间的过去时间,则在第二天第一次达到该时间时结束任务。
在心跳线程中定时获取当前事件戳,并和 task_end_time 比较。如果已经到达该事件,则打印屏幕明确提示用户由于设置了任务终止时间,该任务退出。
ORION_EXCLUDE_PATH 创建容器 /gemini,/root 给业务容器配置ORION EXCLUDE PATH参数把挂载的存储目录排除掉。