v2.10.0
主要功能
- 将 DRA 组件从 HAMi 主 Helm chart 中移除;Ascend DRA 支持迁移至独立的 ascend-dra-driver 仓库,作者 (@archlitchi),PR #2038
- 新增 init container 支持,并正确进行 GPU 资源记账,作者 (@maishivamhoo123),PR #1773
- 新增 PodGroup(gang scheduling)支持,包括 Bind 阶段的 NodeLock 重试以及兼容 Kubernetes v1.36+ 的 gangScheduling feature gates,作者 (@lin121291) 和 (@archlitchi),PR #2066 与 #2206
- 新增 Flexible MIG,支持 MIG 实例的动态分配与释放,作者 (@FouoF),PR #2378
- 新增 mutex GPU 调度策略,并支持逗号分隔的策略组合,作者 (@mesutoezdil),PR #2011 与 #2621
- 为 vGPU 副本新增可选的 NUMA 拓扑对齐(CPU 与 GPU),作者 (@saiyam1814),PR #2065
- 新增壁仞(Biren)设备支持,作者 (@DSFans2014),PR #1711
- 新增 AMD MI300x 系列 vGPU 支持,作者 (@FouoF),PR #2290
- 支持与模式无关的 Ascend Pod 跨 vNPU-template 与 HAMi-core 节点调度,作者 (@ouyangluwei163),PR #2035
- 新增 Ascend 910C vNPU 模板 vir05_1c_16g 与 vir10_3c_32g,作者 (@ouyangluwei163),PR #2005
- HAMi-core 模式下的 vNPU 不再将设备显存对齐到模板,作者 (@archlitchi),PR #2696
- 将 HAMi-core 编译镜像切换为 ubi8,以支持所有 GLIBC 版本,作者 (@spencercjh),PR #1958
主要 bug 修复
- 修复 MIG 失效问题,支持单 GPU 上的多个 MIG 实例,并在禁用 MIG 时跳过 nvidia-mig-parted,作者 (@DSFans2014)、(@saiyam1814) 和 (@maishivamhoo123),PR #1819、#2724 与 #1930
- 修复 MIG 使用量损坏与文件描述符泄漏,作者 (@adity1raut),PR #2245
- 对从 UUID 注解解析的 MIG 模板与实例索引增加边界检查,作者 (@mesutoezdil),PR #2088
- 通过 NVSwitch 检测 NVLink,修复拓扑评分,作者 (@peachest),PR #2103
- 加固 HTTP 服务器与 migconfig 文件权限,作者 (@mesutoezdil),PR #2100
- 修复节点锁处理:保留并发节点锁、回滚部分设备锁,并避免寒武纪节点锁泄漏,作者 (@ShiroKSH)、(@AyushSrivastava1818) 和 (@jianzhangbjz),PR #2197、#2626 与 #2329
- Bind 失败时清理 podManager,避免资源泄漏,作者 (@peachest),PR #1927
- 在节点使用量查询、节点管理器和 Pod 管理器中返回副本而非共享指针,修复数据竞争,作者 (@DSFans2014)、(@mesutoezdil) 和 (@AyushSrivastava1818),PR #1967、#2055 与 #2333
- 修复 ResourceQuota 计账:负使用量归零、对所有设备后端强制配额、支持显式零限额,作者 (@mesutoezdil)、(@Lakshya77089) 和 (@veyron-kairo),PR #1880、#2347 与 #2313
- 恢复带有过期
Deleted_握手注解节点的调度,并按本地时区解析握手时间戳,作者 (@saiyam1814) 和 (@mesutoezdil),PR #1843 与 #1816 - 校验
gpumem-percentage取值范围,并将 0 视为未设置,避免静默不可调度,作者 (@saiyam1814) 和 (@Wangmin362),PR #1997 与 #2156 - 修复 vGPUmonitor 与调度器中的多个 panic 路径,包括 nil 请求体、零值除法和设备索引越界,作者 (@devGPP23)、(@lin121291) 和 (@Nakshatra480),PR #2384、#1820 与 #2400
- 修复多容器 Allocate 中的过期注解,作者 (@peachest),PR #2380
- 修复
memory_allocated_bytes指标的高基数泄漏,作者 (@Aryanbhargava18),PR #2142 - 修复 chart 问题:
ld.so.preload从devicePlugin.libPath派生,全局镜像标签不再覆盖组件级标签,作者 (@ilia-medvedev) 和 (@FouoF),PR #1714 与 #1774
变更内容
其他变更
- 支持 RTX PRO 6000 Blackwell 动态 MIG,作者 (@shkatara),PR #2135
- 支持 Enflame DRS,作者 (@FouoF),PR #1872
- 在准入 webhook 中拒绝特权容器,作者 (@Jay2006sawant),PR #2139
- 对 release 镜像签名并发布 provenance、按 hash 固定 CI actions、在 PR 上运行 CodeQL,作者 (@mesutoezdil),PR #2110、#2147 与 #2193
- 调度器支持模板节点仿真过滤,作者 (@spencercjh),PR #2046
- 为指标增加设备类型标签与节点标签,作者 (@princexpoddar) 和 (@SK8-infi),PR #2554 与 #2580
- 将 Go 构建器升级至 1.26 并更新依赖,作者 (@mesutoezdil),PR #2710 与 #2747
新贡献者
- maverick-woo (@maverick-woo)
- rootsongjc (@rootsongjc)
- pmady (@pmady)
- bolin-dai (@bolin-dai)
- ccoVeille (@ccoVeille)
- spencercjh (@spencercjh)
- lvkaili (@lvkaili)
- zzzkl (@zzzkl)
- usernameisnull (@usernameisnull)
- kenji-mido (@kenji-mido)
- fishman (@fishman)
- LynPtl (@LynPtl)
- shkatara (@shkatara)
- imantaba (@imantaba)
- Jay2006sawant (@Jay2006sawant)
- Aryanbhargava18 (@Aryanbhargava18)
- adity1raut (@adity1raut)
- chidwipak (@chidwipak)
- ShiroKSH (@ShiroKSH)
- princexpoddar (@princexpoddar)
- iemAnshuman (@iemAnshuman)
- Eshiv-Pandey (@Eshiv-Pandey)
- SK8-infi (@SK8-infi)
- cotishq (@cotishq)
- veyron-kairo (@veyron-kairo)
- AyushSrivastava1818 (@AyushSrivastava1818)
- hemantrajputt (@hemantrajputt)
- Lakshya77089 (@Lakshya77089)
- devGPP23 (@devGPP23)
- Nakshatra480 (@Nakshatra480)
- Brijesh-Thakkar (@Brijesh-Thakkar)
- aaka24 (@aaka24)
- asadjan4611 (@asadjan4611)
- shinigami-777 (@shinigami-777)
- aniket866 (@aniket866)
- KunwarSidhu47 (@KunwarSidhu47)
- keshav9926 (@keshav9926)
- Rickydama3 (@Rickydama3)
- hyy321 (@hyy321)
- Ferryx349 (@Ferryx349)
- Kanika0306 (@Kanika0306)
- jianzhangbjz (@jianzhangbjz)
- manoj-1407 (@manoj-1407)
- om7057 (@om7057)
- AdityaShome (@AdityaShome)
- mohityadav8 (@mohityadav8)
贡献者
- archlitchi (@archlitchi)
- Shouren (@Shouren)
- maishivamhoo123 (@maishivamhoo123)
- lin121291 (@lin121291)
- FouoF (@FouoF)
- mesutoezdil (@mesutoezdil)
- saiyam1814 (@saiyam1814)
- spencercjh (@spencercjh)
- DSFans2014 (@DSFans2014)
- kenji-mido (@kenji-mido)
- ouyangluwei163 (@ouyangluwei163)
- dongjiang1989 (@dongjiang1989)
- ashergaga (@ashergaga)
- haitwang-cloud (@haitwang-cloud)
- MyoungHaSong (@MyoungHaSong)
- anandj91 (@anandj91)
- ilia-medvedev (@ilia-medvedev)
- yxxhero (@yxxhero)
- peachest (@peachest)
- shkatara (@shkatara)
- blackdragoon26 (@blackdragoon26)
- iemAnshuman (@iemAnshuman)
- adity1raut (@adity1raut)
- imantaba (@imantaba)
- aaka24 (@aaka24)
- veyron-kairo (@veyron-kairo)
- AyushSrivastava1818 (@AyushSrivastava1818)
- Ferryx349 (@Ferryx349)
- jianzhangbjz (@jianzhangbjz)
- manoj-1407 (@manoj-1407)
- asadjan4611 (@asadjan4611)
- SK8-infi (@SK8-infi)
- mohityadav8 (@mohityadav8)
- hoteye (@hoteye)
- qiangwei1983 (@qiangwei1983)
- jsl9208 (@jsl9208)
- CoderTH (@CoderTH)
- Atroxgod (@Atroxgod)
- Yonsun-w (@Yonsun-w)
- CFH2436 (@CFH2436)
- xrwang8 (@xrwang8)
- almazkhalikov (@almazkhalikov)
- bolin-dai (@bolin-dai)
- lvkaili (@lvkaili)
- ntheanh201 (@ntheanh201)
- LynPtl (@LynPtl)
- Wangmin362 (@Wangmin362)
- Jay2006sawant (@Jay2006sawant)
- Aryanbhargava18 (@Aryanbhargava18)
- ShiroKSH (@ShiroKSH)
- princexpoddar (@princexpoddar)
- Eshiv-Pandey (@Eshiv-Pandey)
- cotishq (@cotishq)
- hemantrajputt (@hemantrajputt)
- Lakshya77089 (@Lakshya77089)
- devGPP23 (@devGPP23)
- Nakshatra480 (@Nakshatra480)
- Brijesh-Thakkar (@Brijesh-Thakkar)
- KunwarSidhu47 (@KunwarSidhu47)
- keshav9926 (@keshav9926)
- Rickydama3 (@Rickydama3)
- hyy321 (@hyy321)
- shinigami-777 (@shinigami-777)
- om7057 (@om7057)
- AdityaShome (@AdityaShome)
- ManishSharma1609 (@ManishSharma1609)
- rootsongjc (@rootsongjc)
- fishman (@fishman)
- chidwipak (@chidwipak)
- Kanika0306 (@Kanika0306)
- xiyichan (@xiyichan)
- wawa0210 (@wawa0210)
- charford (@charford)
- jcustenborder (@jcustenborder)
- Nov11 (@Nov11)
- kenwoodjw (@kenwoodjw)
- luohua13 (@luohua13)
- maverick-woo (@maverick-woo)
- pmady (@pmady)
- ccoVeille (@ccoVeille)
- zzzkl (@zzzkl)
- usernameisnull (@usernameisnull)
- aniket866 (@aniket866)
完整更新日志: https://github.com/Project-HAMi/HAMi/compare/v2.9.0...v2.10.0









