填写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参数把挂载的存储目录排除掉。 |