与HAMi的对比
对比TensorFusion与HAMi项目
HAMi 是一个流行的多厂商GPU/NPU资源池管理解决方案,提供分片GPU和动态MIG功能。
与HAMi相比,TensorFusion不仅提供GPU切分,还通过完全不同的技术实现了真正的GPU虚拟化、隔离、远程共享和实时迁移,有更丰富的企业级功能和云厂商集成。
功能对比
| 功能 | TensorFusion | HAMi |
|---|---|---|
| 基础功能 | ||
| GPU切分 | ✅ | ✅ |
| GPU池管理 | ✅ | ✅ |
| GPU调度与分配 | ✅ | ✅ |
| 远程GPU共享 | ✅ | ❌ |
| 高级功能 | ||
| 无缝迁移现有服务 | ✅ | ✅ |
| 监控与告警 | ✅ | ✅ |
| GPU超额分配 | ✅ | ✅ |
| GPU显存扩充与冷热分层 | ✅ | ❌ |
| 基于GPU资源的自动扩缩容 | ✅ | ❌ |
| 自定义QoS级别 | ✅ | ❌ |
| 分配单机多个vGPU | ✅ | ✅ |
| GPU节点自动买/停 | ✅ | ❌ |
| GPU算力碎片整理 | 🚧 | 🚧 |
| NVIDIA MIG动态配置 | 👋 | ✅ |
| 云端控制台 | ✅ | ✅ |
| 支持非英伟达 GPU | 🚧 | ✅ |
| 企业级功能 | ||
| Windows/Linux虚拟机vGPU | ✅ | ❌ |
| OpenGL/Vulkan虚拟化 | ✅ | ❌ |
| GPU实时迁移 | 🚧 | ❌ |
| CUDA调用链追踪与分析 | 🚧 | ❌ |
| AI模型预加载 | 🚧 | ❌ |
| 高级扩缩容策略与热点显卡平衡 | 🚧 | ❓ |
| GPU集群用量统计与货币化 | 🚧 | ❌ |
注:
- ✅ 表示支持
- ❌ 表示不支持
- 🚧 表示开发中
- ❓ 表示未知
- 👋 表示不再需要
TensorFusion和HAMi都提供Kubernetes环境下的GPU切分、分布式调度。TensorFusion功能更丰富,而HAMi支持更多GPU厂商。
在GPU切分设计上,HAMi采用百分比配额方式,而TensorFusion使用FP16 TFLOPs作为度量单位。百分比方式可能导致不可预测的行为,因为不同代际GPU的1%算力差异巨大。
在技术实现方面,两者在Kubernetes层都使用Golang开发,但在虚拟化层HAMi使用C语言,TensorFusion使用Rust和C++。技术上另一个本质区别在于HAMi通过DevicePlugin注入劫持后的libcuda,而TensorFusion只依赖PodMutationWebhook,HAMi对劫持的libcuda只覆盖了资源配额相关的API,而TensorFusion实现了完整的GPU设备虚拟化和远程共享。
TensorFusion 文档