Green Context
概述
Green Context (GC) 是 MUSA SDK 5.1.0 引入的轻量级执行上下文机制,允许在创建时就将计算任务与特定的 MP(Musa Processor) 资源绑定,确保任务只能使用预留的 MP 资源。
面临的挑战
在标准 MUSA 编程模型中,开发者常遇到以下问题:
| 问题 | 说明 |
|---|---|
| 无法精确控制 MP 分配 | 启动计算任务时,无法直接指定使用的 MP 数量 |
| 资源竞争导致性能不稳定 | 多个任务并行运行时,会竞争相同的 MP 资源,造成性能抖动 |
| 延迟不可预期 | 延迟敏感的任务可能因资源不足而被迫等待,影响服务质量 |
Green Context 的解决方案
Green Context 通过资源预留和隔离机制解决上述问题:
使用 Green Context 前:
时间 →
Kernel A ████████████████████████████████████████
Kernel B ████████████████████████████
问题:Kernel B 必须等待 Kernel A 释放 MP 资源
使用 Green Context 后:
时间 →
GC-A (16 MPs) ██████████████████████████████
GC-B (8 MPs) ████████████████████████████
解决:Kernel B 保证有 8 个 MP 可用,立即启动
工作原理
Green Context 的工作流程分为三个阶段:
- 资源获取:查询设 备上可用的 MP 资源
- 资源划分:将 MP 资源划分为多个独立的分区
- 上下文创建:为每个分区创建 Green Context,计算任务绑定到特定上下文执行
核心特性
| 特性 | 说明 | 优势 |
|---|---|---|
| MP 资源隔离 | 每个 Green Context 独占分配的 MP 资源 | 避免任务间资源竞争,保证性能稳定 |
| 精确资源控制 | 支持 1-64 个 MP 的精细分配 | 满足不同场景的资源需求 |
| 内核代码透明 | 无需修改内核代码 | 降低使用门槛,易于集成 |
| 多上下文并行 | 支持创建多个 Green Context 并行执行 | 提高 GPU 利用率 |
| 与流集成 | 通过标准流 API 启动任务 | 与现有编程模型无缝兼容 |
| Event 支持 | 支持在 Green Context 中记录/等待 Event | 实现复杂的同步依赖 |
快速开始
安装
请参阅 安装指南 获取完整的安装步骤。