diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 09788f5f61..14fc2888a5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -28,14 +28,13 @@ HAMi is a community project driven by its community which strives to promote a h # Getting started -- Fork the repository on GitHub. -- Make your changes on your fork repository. -- Submit a PR. - +- Fork the repository on GitHub +- Make your changes in your forked repository +- Submit a Pull Request (PR) # Your First Contribution -We will help you to contribute in different areas like filing issues, developing features, fixing critical bugs and +We will help you contribute in different areas such as filing issues, developing features, fixing critical bugs and getting your work reviewed and merged. If you have questions about the development process, @@ -43,61 +42,60 @@ feel free to [file an issue](https://github.com/Project-HAMi/HAMi/issues/new/cho ## Find something to work on -We are always in need of help, be it fixing documentation, reporting bugs or writing some code. -Look at places where you feel best coding practices aren't followed, code refactoring is needed or tests are missing. -Here is how you get started. +We are always in need of help, whether it's fixing documentation, reporting bugs, or writing code. +Look for places where best coding practices aren't followed, code refactoring is needed, or tests are missing. +Here's how you can get started. ### Find a good first topic There are [multiple repositories](https://github.com/Project-HAMi/) within the HAMi organization. -Each repository has beginner-friendly issues that provide a good first issue. +Each repository has beginner-friendly issues marked as "good first issues". For example, [Project-HAMi/HAMi](https://github.com/Project-HAMi/HAMi) has [help wanted](https://github.com/Project-HAMi/HAMi/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) and [good first issue](https://github.com/Project-HAMi/HAMi/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) -labels for issues that should not need deep knowledge of the system. +labels for issues that should not require deep knowledge of the system. We can help new contributors who wish to work on such issues. -Another good way to contribute is to find a documentation improvement, such as a missing/broken link. +Another good way to contribute is to find documentation improvements, such as fixing missing or broken links. Please see [Contributing](#contributing) below for the workflow. #### Work on an issue -When you are willing to take on an issue, just reply on the issue. The maintainer will assign it to you. +When you are willing to take on an issue, simply reply to the issue and a maintainer will assign it to you. ### File an Issue -While we encourage everyone to contribute code, it is also appreciated when someone reports an issue. +While we encourage everyone to contribute code, we also appreciate when someone reports an issue. Issues should be filed under the appropriate HAMi sub-repository. -*Example:* a HAMi issue should be opened to [Project-HAMi/HAMi](https://github.com/Project-HAMi/HAMi/issues). +*Example:* A HAMi issue should be opened in [Project-HAMi/HAMi](https://github.com/Project-HAMi/HAMi/issues). -Please follow the prompted submission guidelines while opening an issue. +Please follow the provided submission guidelines when opening an issue. # Contributor Workflow -Please do not ever hesitate to ask a question or send a pull request. +Please never hesitate to ask questions or submit a pull request. This is a rough outline of what a contributor's workflow looks like: -- Create a topic branch from where to base the contribution. This is usually master. -- Make commits of logical units. -- Push changes in a topic branch to a personal fork of the repository. -- Submit a pull request to [Project-HAMi/HAMi](https://github.com/Project-HAMi/HAMi). +- Create a topic branch from where you want to base the contribution (usually master) +- Make commits of logical units +- Push changes in your topic branch to your personal fork of the repository +- Submit a pull request to [Project-HAMi/HAMi](https://github.com/Project-HAMi/HAMi) ## Creating Pull Requests -Pull requests are often called simply "PR". -HAMi generally follows the standard [github pull request](https://help.github.com/articles/about-pull-requests/) process. +Pull requests are often called simply "PRs". +HAMi generally follows the standard [GitHub pull request](https://help.github.com/articles/about-pull-requests/) process. To submit a proposed change, please develop the code/fix and add new test cases. -After that, run these local verifications before submitting pull request to predict the pass or -fail of continuous integration. +Before submitting a pull request, run these local verifications to predict whether continuous integration will pass or fail: * Run and pass `make verify` ## Code Review -To make it easier for your PR to receive reviews, consider the reviewers will need you to: +To make it easier for your PR to receive reviews, consider that reviewers will need you to: -* follow [good coding guidelines](https://github.com/golang/go/wiki/CodeReviewComments). -* write [good commit messages](https://chris.beams.io/posts/git-commit/). -* break large changes into a logical series of smaller patches which individually make easily understandable changes, and in aggregate solve a broader issue. \ No newline at end of file +* Follow [good coding guidelines](https://github.com/golang/go/wiki/CodeReviewComments) +* Write [good commit messages](https://chris.beams.io/posts/git-commit/) +* Break large changes into a logical series of smaller patches which individually make easily understandable changes, and in aggregate solve a broader issue diff --git a/README.md b/README.md index 765a9b24ab..4a82ef1185 100644 --- a/README.md +++ b/README.md @@ -19,9 +19,9 @@ English version|[中文版](README_cn.md) ## Introduction -HAMi, formerly known as 'k8s-vGPU-scheduler', is a Heterogeneous device management middleware for Kubernetes. It can manage different types of heterogeneous devices(like GPU,NPU,etc...), share heterogeneous devices among pods, make better scheduling decision based on topology of devices and schedule policies. +HAMi, formerly known as 'k8s-vGPU-scheduler', is a Heterogeneous device management middleware for Kubernetes. It can manage different types of heterogeneous devices (like GPU, NPU, etc.), share heterogeneous devices among pods, make better scheduling decisions based on topology of devices and scheduling policies. -It aims to remove the gap between different Heterogeneous devices, and provide a unified interface for user to manage with no change to your application. Until June 2024, HAMi has been widely used around the world at a variety of industries such as Internet/Cloud/Finance/ Manufacturing. More than 40 companies or institutions are not only end users but also active contributors. +It aims to remove the gap between different Heterogeneous devices, and provide a unified interface for users to manage with no changes to their applications. As of December 2024, HAMi has been widely used not only in Internet, public cloud and private cloud, but also broadly adopted in various vertical industries including finance, securities, energy, telecommunications, education, and manufacturing. More than 50 companies or institutions are not only end users but also active contributors. ![cncf_logo](imgs/cncf-logo.png) @@ -36,17 +36,17 @@ HAMi provides device virtualization for several heterogeneous devices including ### Device sharing -- Allows partial device allocation by specifying device memory. +- Allows partial device allocation by specifying device core usage. +- Allows partial device allocation by specifying device memory. - Imposes a hard limit on streaming multiprocessors. -- Permits partial device allocation by specifying device core usage. - Requires zero changes to existing programs. ### Device Resources Isolation -A simple demostration for device isolation: -A task with the following resources. +A simple demonstration of device isolation: +A task with the following resources: ``` resources: @@ -88,7 +88,7 @@ The list of prerequisites for running the NVIDIA device plugin is described belo - NVIDIA drivers >= 440 - nvidia-docker version > 2.0 -- config default runtime is nvidia for containerd/docker/cri-o container runtime. +- default runtime configured as nvidia for containerd/docker/cri-o container runtime - Kubernetes version >= 1.16 - glibc >= 2.17 & glibc < 2.3.0 - kernel version >= 3.10 diff --git a/README_cn.md b/README_cn.md index 8bfda3c58c..e4bd99fede 100644 --- a/README_cn.md +++ b/README_cn.md @@ -1,7 +1,9 @@ +[English version](README.md)|中文版 + [![LICENSE](https://img.shields.io/github/license/Project-HAMi/HAMi.svg)](/LICENSE) -[![build status](https://github.com/Project-HAMi/HAMi/actions/workflows/build-image-release.yaml/badge.svg)](https://github.com/Project-HAMi/HAMi/actions/workflows/build-image-release.yaml) +[![build status](https://github.com/Project-HAMi/HAMi/actions/workflows/ci.yaml/badge.svg)](https://github.com/Project-HAMi/HAMi/actions/workflows/ci.yaml) [![Releases](https://img.shields.io/github/v/release/Project-HAMi/HAMi)](https://github.com/Project-HAMi/HAMi/releases/latest) [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/9416/badge)](https://www.bestpractices.dev/en/projects/9416) [![Go Report Card](https://goreportcard.com/badge/github.com/Project-HAMi/HAMi)](https://goreportcard.com/report/github.com/Project-HAMi/HAMi) @@ -9,209 +11,165 @@ [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FProject-HAMi%2FHAMi.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FProject-HAMi%2FHAMi?ref=badge_shield) [![docker pulls](https://img.shields.io/docker/pulls/4pdosc/k8s-vgpu.svg)](https://hub.docker.com/r/4pdosc/k8s-vgpu) [![slack](https://img.shields.io/badge/Slack-Join%20Slack-blue)](https://cloud-native.slack.com/archives/C07T10BU4R2) -[![discuss](https://img.shields.io/badge/Discuss-Ask%20Questions-blue)](https://github.com/Project-HAMi/HAMi/discussions) -[![website](https://img.shields.io/badge/website-blue)](http://project-hami.io) -[![Contact Me](https://img.shields.io/badge/Contact%20Me-blue)](https://github.com/Project-HAMi/HAMi#contact) - - -# Project-HAMi;异构算力虚拟化中间件 - -## 支持设备: - -[![英伟达 GPU](https://img.shields.io/badge/Nvidia-GPU-blue)](https://github.com/Project-HAMi/HAMi#preparing-your-gpu-nodes) -[![寒武纪 MLU](https://img.shields.io/badge/寒武纪-Mlu-blue)](docs/cambricon-mlu-support_cn.md) -[![海光 DCU](https://img.shields.io/badge/海光-DCU-blue)](docs/hygon-dcu-support.md) -[![天数智芯 GPU](https://img.shields.io/badge/天数智芯-GPU-blue)](docs/iluvatar-gpu-support_cn.md) -[![摩尔线程 GPU](https://img.shields.io/badge/摩尔线程-GPU-blue)](docs/mthreads-support_cn.md) -[![华为昇腾 NPU](https://img.shields.io/badge/华为昇腾-NPU-blue)](https://github.com/Project-HAMi/ascend-device-plugin/blob/main/README_cn.md) -[![沐曦 GPU](https://img.shields.io/badge/metax-GPU-blue)](docs/metax-support_cn.md) +[![discuss](https://img.shields.io/badge/Discuss-提问讨论-blue)](https://github.com/Project-HAMi/HAMi/discussions) +[![website](https://img.shields.io/badge/官网-blue)](http://project-hami.io) +[![Contact Me](https://img.shields.io/badge/联系我们-blue)](https://github.com/Project-HAMi/HAMi#contact) +## Project-HAMi:异构 AI 计算虚拟化中间件 ## 简介 -HAMi,原名“k8s-vGPU-scheduler”,是管理Kubernetes中异构设备的中间件。它可以管理不同类型的异构设备(如GPU、NPU等),在Pod之间共享异构设备,根据设备的拓扑信息和调度策略做出更好的调度决策。 +HAMi(前身为 'k8s-vGPU-scheduler')是一个面向 Kubernetes 的异构设备管理中间件。它可以管理不同类型的异构设备(如 GPU、NPU、MLU、DCU 等),实现异构设备在 Pod 之间的共享,并基于设备拓扑和调度策略做出更优的调度决策。 -它旨在消除不同异构设备之间的差距,为用户提供一个统一的管理接口,且无需更改应用程序。截至 2024年6月,HAMi已广泛应用于全球互联网/云/金融/制造等多个行业,被超过40多家公司或机构采纳。他们中的许多不仅是最终用户,也是项目积极的贡献者。 +HAMi 旨在消除不同异构设备之间的差异,为用户提供统一的管理接口,无需对应用程序进行任何修改。截至 2024 年 12 月,HAMi 除了在互联网、公有云、私有云等领域外,在金融、证券、能源、运营商、教育、制造业等垂直领域,也得到了广泛采纳。超过 40 家企业和机构不仅是最终用户,同时也是活跃的贡献者。 ![cncf_logo](imgs/cncf-logo.png) -HAMi 是[Cloud Native Computing Foundation](https://cncf.io/)(CNCF)基金会的sandbox项目和[landscape](https://landscape.cncf.io/?item=orchestration-management--scheduling-orchestration--hami)项目,并且是 -[CNAI Landscape project](https://landscape.cncf.io/?group=cnai&item=cnai--general-orchestration--hami). +HAMi 是 [Cloud Native Computing Foundation](https://cncf.io/)(CNCF) 基金会的沙箱项目和 [landscape](https://landscape.cncf.io/?item=orchestration-management--scheduling-orchestration--hami) 项目,同时也是 [CNAI Landscape 项目](https://landscape.cncf.io/?group=cnai&item=cnai--general-orchestration--hami)。 ## 虚拟化能力 -HAMi通过支持设备共享和设备资源隔离,为包括GPU在内的多个异构设备提供设备虚拟化。有关支持设备虚拟化的设备列表,请参阅 [支持的设备](#支持设备) +HAMi 可为多种异构设备提供虚拟化功能,支持设备共享和资源隔离。关于支持设备虚拟化的设备列表,请参见[支持的设备](#支持的设备)。 -### 设备复用能力 +### 设备共享能力 -- 允许通过指定显存来申请算力设备 -- 算力资源的硬隔离 -- 允许通过指定算力使用比例来申请算力设备 -- 对已有程序零改动 +- 通过设置核心使用率(百分比),进行设备的部分分配 +- 通过设置显存(单位:MB),进行设备的部分分配 +- 对流式多处理器进行硬限制 +- 无需对现有程序进行任何修改 ### 设备资源隔离能力 HAMi支持设备资源的硬隔离 -一个以NVIDIA GPU为例硬隔离的简单展示: -一个使用以下方式定义的任务提交后 +一个以 NVIDIA GPU 为例硬隔离的简单展示: ```yaml resources: limits: - nvidia.com/gpu: 1 # requesting 1 vGPU - nvidia.com/gpumem: 3000 # Each vGPU contains 3000m device memory + nvidia.com/gpu: 1 # 请求 1 个虚拟 GPU + nvidia.com/gpumem: 3000 # 每个虚拟 GPU 包含 3000M 设备内存 ``` -会只有3G可见显存 + +在容器内将看到 3G 设备内存 ![img](./imgs/hard_limit.jpg) -## 项目架构图 +### 支持的设备 - +[![nvidia GPU](https://img.shields.io/badge/Nvidia-GPU-blue)](https://github.com/Project-HAMi/HAMi#preparing-your-gpu-nodes) +[![cambricon MLU](https://img.shields.io/badge/寒武纪-Mlu-blue)](docs/cambricon-mlu-support.md) +[![hygon DCU](https://img.shields.io/badge/海光-DCU-blue)](docs/hygon-dcu-support.md) +[![iluvatar GPU](https://img.shields.io/badge/壁仞-GPU-blue)](docs/iluvatar-gpu-support.md) +[![mthreads GPU](https://img.shields.io/badge/摩尔线程-GPU-blue)](docs/mthreads-support.md) +[![ascend NPU](https://img.shields.io/badge/昇腾-NPU-blue)](https://github.com/Project-HAMi/ascend-device-plugin/blob/main/README.md) +[![metax GPU](https://img.shields.io/badge/沐曦-GPU-blue)](docs/metax-support.md) -HAMi 包含以下几个组件,一个统一的mutatingwebhook,一个统一的调度器,以及针对各种不同的异构算力设备对应的设备插件和容器内的控制组件,整体的架构特性如上图所示。 +## 架构 + -## 快速入门 +HAMi 由多个组件组成,包括统一的 mutatingwebhook、统一的调度器扩展器、不同的设备插件以及针对每种异构 AI 设备的容器内虚拟化技术。 -### 选择你的集群调度器 +## 快速开始 -[![kube-scheduler](https://img.shields.io/badge/kube-scheduler-blue)](https://github.com/Project-HAMi/HAMi#quick-start) +### 选择你的调度器 + +[![kube-scheduler](https://img.shields.io/badge/kube-scheduler-blue)](#前置条件) [![volcano-scheduler](https://img.shields.io/badge/volcano-scheduler-orange)](docs/how-to-use-volcano-vgpu.md) -### 安装要求 +### 前置条件 + +运行 NVIDIA 设备插件的前置条件如下: -* NVIDIA drivers >= 440 -* nvidia-docker version > 2.0 -* docker/containerd/cri-o已配置nvidia作为默认runtime -* Kubernetes version >= 1.16 -* glibc >= 2.17 & glibc < 2.3.0 -* kernel version >= 3.10 -* helm > 3.0 +- NVIDIA 驱动 >= 440 +- nvidia-docker 版本 > 2.0 +- containerd/docker/cri-o 容器运行时的默认运行时配置为 nvidia +- Kubernetes 版本 >= 1.16 +- glibc >= 2.17 & glibc < 2.3.0 +- 内核版本 >= 3.10 +- helm > 3.0 ### 安装 -首先使用helm添加我们的 repo +首先,通过添加标签 "gpu=on" 来标记你的 GPU 节点以进行 HAMi 调度。没有此标签的节点将无法被我们的调度器管理。 -```bash -helm repo add hami-charts https://project-hami.github.io/HAMi/ ``` - -随后,你需要将所有要使用到的GPU节点打上gpu=on标签,否则该节点不会被调度到 - -```bash kubectl label nodes {nodeid} gpu=on ``` -使用如下指令进行安装 +在 helm 中添加我们的仓库 -```bash -helm install hami hami-charts/hami -n kube-system ``` - -你可以修改这里的[配置](docs/config_cn.md)来定制安装 - -通过kubectl get pods指令看到 `vgpu-device-plugin` 与 `vgpu-scheduler` 两个pod 状态为*Running* 即为安装成功 - -```bash -kubectl get pods -n kube-system +helm repo add hami-charts https://project-hami.github.io/HAMi/ ``` -### WebUI - -HAMi在2.4.0版本后支持了[HAMi-WebUI](https://github.com/Project-HAMi/HAMi-WebUI) - -有关具体的部署方式,点击[这里](https://github.com/Project-HAMi/HAMi-WebUI/blob/main/docs/installation/helm/index.md)获取 - -### 提交任务 +使用以下命令进行部署: -
任务样例 - -NVIDIA vGPUs 现在能透过资源类型`nvidia.com/gpu`被容器请求: - -```yaml -apiVersion: v1 -kind: Pod -metadata: - name: gpu-pod -spec: - containers: - - name: ubuntu-container - image: ubuntu:18.04 - command: ["bash", "-c", "sleep 86400"] - resources: - limits: - nvidia.com/gpu: "2" # 请求2个vGPUs - nvidia.com/gpumem: "3000" # 每个vGPU申请3000m显存 (可选,整数类型) - nvidia.com/gpucores: "30" # 每个vGPU的算力为30%实际显卡的算力 (可选,整数类型) +``` +helm install hami hami-charts/hami -n kube-system ``` -如果你的任务无法运行在任何一个节点上(例如任务的`nvidia.com/gpu`大于集群中任意一个GPU节点的实际GPU数量),那么任务会卡在`pending`状态 +通过调整[配置](docs/config.md)来自定义你的安装。 -现在你可以在容器执行`nvidia-smi`命令,然后比较vGPU和实际GPU显存大小的不同。 +使用以下命令验证你的安装: -> **注意:** *1. 如果你使用privileged字段的话,本任务将不会被调度,因为它可见所有的GPU,会对其它任务造成影响.* -> -> *2. 不要设置nodeName字段,类似需求请使用nodeSelector.* +``` +kubectl get pods -n kube-system +``` -#### 更多范例 +如果 `vgpu-device-plugin` 和 `vgpu-scheduler` pod 都处于 *Running* 状态,则安装成功。你可以在[这里](https://github.com/Project-HAMi/HAMi/blob/newprofile/examples/nvidia/default_use.yaml)尝试示例。 -点击 [范例](examples/nvidia) +### Web 界面 -
+[HAMi-WebUI](https://github.com/Project-HAMi/HAMi-WebUI) 从 HAMi v2.4 版本开始可用 -### 监控: +安装指南请点击[这里](https://github.com/Project-HAMi/HAMi-WebUI/blob/main/docs/installation/helm/index.md) -
访问集群算力视图 +### 监控 -调度器部署成功后,监控默认自动开启,你可以通过 +安装后自动启用监控。通过访问以下 URL 获取集群信息概览: -```http -http://{nodeip}:{monitorPort}/metrics +``` +http://{scheduler ip}:{monitorPort}/metrics ``` -来获取监控数据,其中monitorPort可以在Values中进行配置,默认为31992 - -grafana dashboard [示例](docs/dashboard_cn.md) +默认 monitorPort 为 31993;可以在安装时使用 `--set devicePlugin.service.httpPort` 设置其他值。 -> **注意** 节点上的vGPU状态只有在其使用vGPU后才会被统计 +Grafana 仪表板[示例](docs/dashboard.md) -
+> **注意** 在提交任务之前不会收集节点状态 ## 注意事项 -- 目前仅支持计算任务,不支持视频编解码处理。 -- 暂时仅支持MIG的"none"和"mixed"模式,暂时不支持single模式 -- 当任务有字段“nodeName“时会出现无法调度的情况,有类似需求的请使用"nodeSelector"代替 -- 我们修改了 `device-plugin` 组件的环境变量,从 `NodeName` 改为 `NODE_NAME`, 如果使用的是镜像版本是 `v2.3.9`, 则可能会出现 `device-plugin` 无法启动的情况,目前有两种修复建议: - - 手动执行`kubectl edit daemonset` 修改 `device-plugin` 的环境变量从`NodeName` 改为 `NODE_NAME`。 - - 使用helm升级到最新版本,最新版`device-plugin`的镜像版本是`v2.3.10`,执行 `helm upgrade hami hami/hami -n kube-system`, 会自动修复。 +- 如果在使用带有 NVIDIA 镜像的设备插件时不请求虚拟 GPU,机器上的所有 GPU 可能会在容器内暴露 +- 目前,A100 MIG 仅支持 "none" 和 "mixed" 模式 +- 带有 "nodeName" 字段的任务目前无法调度;请使用 "nodeSelector" 代替 ## 社区治理 -该项目由一组 [Maintainers and Committers](https://github.com/Project-HAMi/HAMi/blob/master/AUTHORS) 管理。我们的[治理文件](https://github.com/Project-HAMi/community/blob/main/governance.md) 中概述了如何选择和管理它们。 +本项目由一组[维护者和提交者](https://github.com/Project-HAMi/HAMi/blob/master/AUTHORS)管理。他们的选择和管理方式在我们的[治理文档](https://github.com/Project-HAMi/community/blob/main/governance.md)中有详细说明。 -如果你想成为 HAMi 的贡献者,请参[考贡献者指南](CONTRIBUTING.md),里面有详细的贡献流程。 +如果你有兴趣成为贡献者并希望参与 HAMi 代码开发,请查看 [CONTRIBUTING](CONTRIBUTING.md) 了解提交补丁和贡献工作流程的详细信息。 -请参阅 [RoadMap](docs/develop/roadmap.md) 查看您感兴趣的任何内容。 +查看[路线图](docs/develop/roadmap.md)了解你感兴趣的内容。 -## 项目周会和联系方式 +## 会议与联系方式 -HAMi 社区致力于营造一个开放和友好的环境,并通过多种方式与其他用户和开发人员互动。 +HAMi 社区致力于营造开放和友好的环境,提供多种方式与其他用户和开发者互动。 -如果您有任何问题,请随时通过以下渠道与我们联系: +如果你有任何问题,请随时通过以下渠道与我们联系: -- 定期社区会议:周五 16:00 UTC+8(中文)(每周). [转换为您的时区](https://www.thetimezoneconverter.com/?t=14%3A30&tz=GMT%2B8&)。 - - [会议纪要及议程](https://docs.google.com/document/d/1YC6hco03_oXbF9IOUPJ29VWEddmITIKIfSmBX8JtGBw/edit#heading=h.g61sgp7w0d0c) +- 常规社区会议:每周五 16:00(UTC+8)(中文)。[转换为你的时区](https://www.thetimezoneconverter.com/?t=14%3A30&tz=GMT%2B8&)。 + - [会议记录和议程](https://docs.google.com/document/d/1YC6hco03_oXbF9IOUPJ29VWEddmITIKIfSmBX8JtGBw/edit#heading=h.g61sgp7w0d0c) - [会议链接](https://meeting.tencent.com/dm/Ntiwq1BICD1P) -- 电子邮件:请参阅[MAINTAINERS.md](MAINTAINERS.md)以查找所有维护者的电子邮件地址。请随时通过电子邮件与他们联系以报告任何问题或提出问题。 +- 电子邮件:请参考 [MAINTAINERS.md](MAINTAINERS.md) 查找所有维护者的电子邮件地址。如有任何问题或需要报告问题,请随时通过电子邮件联系他们。 - [邮件列表](https://groups.google.com/forum/#!forum/hami-project) -- [slack]( https://cloud-native.slack.com/archives/C07T10BU4R2) | [Join](https://slack.cncf.io/) +- [Slack](https://cloud-native.slack.com/archives/C07T10BU4R2) | [加入](https://slack.cncf.io/) -## 演讲和分享 +## 演讲和参考资料 -| | Link | +| | 链接 | |------------------|-------------------------------------------------------------------------------------------------------------------------| | 中国云计算基础架构开发者大会 (Beijing 2024) | [在 Kubernetes 集群式解锁异构 AI 基础设施](https://live.csdn.net/room/csdnnews/3zwDP09S) Starting from 03:06:15 | | KubeDay(Japan 2024) | [Unlocking Heterogeneous AI Infrastructure K8s Cluster:Leveraging the Power of HAMi](https://www.youtube.com/watch?v=owoaSb4nZwg) | @@ -219,6 +177,6 @@ HAMi 社区致力于营造一个开放和友好的环境,并通过多种方式 | KubeCon & AI_dev Open Source GenAI & ML Summit(China 2024) | [Unlocking Heterogeneous AI Infrastructure K8s Cluster](https://www.youtube.com/watch?v=kcGXnp_QShs) | | KubeCon(EU 2024)| [Cloud Native Batch Computing with Volcano: Updates and Future](https://youtu.be/fVYKk6xSOsw) | -## License +## 许可证 -HAMi is under the Apache 2.0 license. See the [LICENSE](LICENSE) file for details. +HAMi 采用 Apache 2.0 许可证。详情请参见 [LICENSE](LICENSE) 文件。