架构
HAMi 的整体架构如下所示:

HAMi 由以下组件组成:
- HAMi MutatingWebhook
- HAMi scheduler-extender
- Device-plugin (HAMi-device-plugin)
- 容器内资源控制 (HAMi-Core)
HAMi MutatingWebhook 用于检查该任务是否可以由 HAMi 处理,它会扫描每个提交的 pod 的资源字段,如果该 pod 需要的每项资源都是 'cpu'、'memory' 或 HAMi 资源,则会将该 pod 的 schedulerName 字段设置为 'HAMi-scheduler'。
HAMi scheduler 负责将任务分配到合适的节点和设备。同时,调度器需要维护异构计算设备的全局视图以进行监控。
device-plugin 层从任务的 annotations 字段获取调度结果,并将相应的设备映射到容器中。
容器内资源控制负责监控容器内的资源使用情况,并提供硬隔离能力。