Modular的CUDA替代方案:原理、架构与设计思想

Modular的CUDA替代方案:原理、架构与设计思想

Modular的CUDA替代方案

原理、架构与设计思想

lightbulb 引言

stars
CUDA是英伟达开发的并行计算平台和编程模型,已成为深度学习领域的主导技术,形成了强大的技术壁垒。
person
由编程语言专家Chris Lattner(LLVM、Swift语言创始人)领导的Modular公司,历时三年开发了一个全新的人工智能软件栈,旨在成为CUDA的替代方案。
trending_up
Modular的目标不仅是取代CUDA,而是要彻底从头打造一个能够支持所有类型AI硬件的高性能可移植平台。

warning 现有AI软件栈的问题

layers
现有AI软件栈发展迅速且不断演变,为跟上新应用场景和模型,不断添加新层级,形成了复杂的堆叠结构。
history
CUDA已有16年历史,在生成式AI应用和张量核心等GPU硬件特性出现之前就已存在,难以适应现代AI需求。
block
现有替代方案如Apache TVM和OpenCL各有局限性,难以满足生成式AI的复杂需求,缺乏跨硬件的高性能可移植性。

architecture Modular的解决方案

speed
MAX引擎:Modular的AI推理引擎,最初支持x86和Arm架构的CPU,最近增加了对英伟达GPU的支持。
code
Mojo语言:专为AI和高性能计算设计的编程语言,结合了Python的易用性和C的性能。
Mojo代码示例
# Mojo示例:简单的矩阵乘法
fn matrix_multiply(matrix1: Tensor[DType.float32], matrix2: Tensor[DType.float32]) -> Tensor[DType.float32]:
    return matrix1 @ matrix2  # 使用Mojo的高性能张量操作
equalizer
关键成就:在英伟达A100和H100 GPU上,MAX引擎能够达到与CUDA相当的性能。

settings 技术原理

swap_horiz
高级抽象:通过对硬件特性(如张量内存加速器TMA)进行更高级别的抽象,实现高性能可移植性。
auto_fix_high
统一编译器:Modular开发了能够针对不同硬件优化代码的统一编译器框架,无需为每种硬件重写代码。
schedule
快速适配:从首次支持H100到达到或超过CUDA性能,Modular仅用了两个月时间,展示了其技术栈的可扩展性。

hub 集群管理功能

route
智能路由:Modular构建了数据平面和控制平面,能够在节点之间连贯地路由请求,管理集群中的状态和分布。
memory
资源优化:根据批量大小、序列长度支持等因素,将工作负载的不同部分分离到最合适的硬件上。
sync_alt
状态管理:针对生成式AI工作负载的有状态特性,确保同一用户的查询在同一节点上处理,提高效率。

psychology 设计思想

public
AI民主化:Modular的理念是让AI民主化,将控制权交还给软件开发人员和平台团队,而非集中式云服务。
devices
硬件无关性:作为纯软件公司,Modular致力于构建适用于所有硬件的软件栈,打破硬件壁垒。
integration_instructions
简化复杂性:让开发人员不必了解硬件或AI研究的所有复杂性,专注于构建智能工作流程。

timeline 未来展望

calendar_today
Modular对非英伟达GPU和其他类型加速器的支持计划在2025年底开始。
trending_up
持续优化:Modular将继续优化其软件栈,以支持更多硬件和更复杂的AI模型。
groups
生态系统建设:Modular正在构建一个开放的生态系统,让更多开发者和硬件厂商参与其中。
Modular的CUDA替代方案:原理、架构与设计思想

现有AI软件栈的问题

CUDA主导地位下的技术挑战

01

history CUDA的历史局限性

timeline
CUDA已有16年历史,在生成式AI应用和张量核心等GPU硬件特性出现之前就已存在
update
随着AI技术快速发展,CUDA不断添加新功能,但基础架构并未为现代AI需求设计
settings_suggest
新硬件特性(如H100的张量内存加速器TMA)需要重写代码才能获得良好性能
02

layers 软件栈的快速演变问题

add_circle
现有AI软件栈发展迅速且不断演变,为跟上新应用场景和模型,不断添加新层级
view_quilt
形成了复杂的堆叠结构:CUDA之上有一系列库(如OneMKL)、推理服务(如vLLM)、TensorRT-LLM和NIM微服务等
swap_horiz
拉特纳称之为”庞大的一堆东西“,缺乏统一性和通用性
03

block 现有替代方案的不足

code
Apache TVM:开源项目,旨在通过自动化内核融合使AI能在各种硬件上高效运行,但生成式AI的算法比传统计算机视觉应用更复杂,技术挑战大
devices_other
OpenCL:旨在实现GPU和其他硬件间代码可移植性的标准,但缺乏跟上快速发展AI技术的灵活性,由相互竞争公司间的”竞合”驱动
trending_down
其他商业项目仍处于早期阶段,构建演示程序与构建大规模通用系统之间存在巨大差距
04

warning 核心挑战

lock
技术锁定:CUDA生态系统形成了强大的技术壁垒,使开发者难以迁移到其他硬件平台
sync_problem
性能可移植性缺失:即使是英伟达自身,在不同代GPU(如A100和H100)之间也需要重写代码才能获得良好性能
extension
通用性不足:现有解决方案多为”一次性框架”,被采用后使用期限短,无法跟上AI研究步伐
people
只有少数顶尖公司能够有效管理异构硬件和复杂工作负载,大多数企业缺乏相关技术能力
Modular的CUDA替代方案:原理、架构与设计思想

Modular的解决方案

MAX引擎:高性能AI推理平台

01

rocket_launch MAX引擎概述

history
Chris Lattner领导的120人团队历时三年开发,目标是彻底从头打造全新AI软件栈
architecture
MAX(Modular Accelerated Xecution)引擎是Modular的AI推理引擎,提供跨硬件的高性能计算能力
integration_instructions
不仅是一个CUDA替代品,而是一个完整的AI软件栈,包括编程语言和构建在其上的大语言模型服务栈
02

layers MAX引擎架构

应用层:Python API & Mojo语言
中间表示层:统一计算图
硬件抽象层:跨平台优化
code
Mojo语言:专为AI和高性能计算设计的编程语言,结合Python的易用性和C的性能
Mojo代码示例
# 使用Mojo进行高性能矩阵运算
from tensor import Tensor

def matmul(A. Tensor[DType.float32], B: Tensor[DType.float32]) -> Tensor[DType.float32]:
    # 自动优化为最适合目标硬件的实现
    return A @ B
auto_fix_high
统一编译器:能够针对不同硬件优化代码,无需为每种硬件重写代码
03

devices 硬件支持

computer
CPU支持:最初支持x86和Arm架构的CPU,提供广泛的硬件兼容性
memory
GPU支持:最近增加了对英伟达GPU的支持,包括A100和H100等高端GPU
update
未来计划:对非英伟达GPU和其他类型加速器的支持将在2025年底开始
04

speed 性能对比与关键成果

equalizer
在英伟达A100和H100 GPU上,MAX引擎能够达到与CUDA相当的性能
A100性能达成时间
4年 → 3年
H100性能达成时间
仅需2个月
trending_up
从首次引入对H100的支持到实现生成式AI推理性能达到或超过CUDA,Modular只用了两个月时间
psychology
拉特纳表示:”我们以一种能够扩展的方式进行工程设计。我们在两个月内就达到了与H100相当的性能,而不是两年,因为(我们的)技术投资使我们能够扩大规模并切实解决这些问题。”
05

compare_arrows 与CUDA的关键区别

public
硬件无关性:MAX引擎设计为跨硬件平台,而CUDA主要针对英伟达GPU
swap_horiz
高级抽象:通过对硬件特性进行更高级别的抽象,实现高性能可移植性
update
快速适应:能够快速适应新硬件特性,无需重写大量代码
settings_suggest
统一编程模型:提供一致的编程体验,无论底层硬件如何
Modular的CUDA替代方案:原理、架构与设计思想

技术原理

Modular如何实现高性能可移植性

01

layers 高级抽象层

architecture
Modular通过对硬件特性进行更高级别的抽象,实现高性能可移植性
应用层:统一的AI模型接口
arrow_downward
中间表示:硬件无关的计算图
arrow_downward
硬件抽象:针对特定硬件的优化
settings_suggest
例如,对H100的张量内存加速器(TMA)单元进行抽象,使开发者无需直接处理底层硬件细节
compare_arrows
这种抽象方式使同一代码可以在不同硬件上运行,同时保持高性能
02

auto_fix_high 统一编译器框架

code
Modular开发了能够针对不同硬件优化代码的统一编译器框架
编译器优化示例 (伪代码)
// 高级表示
def matmul(A, B. :
    return A @ B

// 编译器自动生成的硬件特定优化代码
// CPU版本
def matmul_cpu(A, B. :
    # 使用SIMD指令和缓存优化
    return optimized_cpu_matmul(A, B. // GPU版本
def matmul_gpu(A, B. :
    # 使用张量核心和共享内存
    return optimized_gpu_matmul(A, B)
tune
编译器能够根据目标硬件特性自动选择最佳算法和优化策略
sync
开发者无需为每种硬件重写代码,编译器负责处理硬件特定优化
03

speed 快速适配新硬件

timer
两个月达成H100性能
从首次支持H100到达到或超过CUDA性能,Modular仅用了两个月,而传统方法需要数年
build
Modular的可扩展工程设计使其能够快速适应新硬件特性
extension
通过模块化设计,新硬件支持可以作为插件添加,无需重构整个系统
psychology
拉特纳表示:”我们以一种能够扩展的方式进行工程设计。我们在两个月内就达到了与H100相当的性能,而不是两年,因为(我们的)技术投资使我们能够扩大规模并切实解决这些问题。”
04

compare 与传统方法的对比

特性 传统方法 Modular方法
硬件适配 为每种硬件重写代码 统一代码,编译器优化
新硬件支持 需要数年时间 仅需数月时间
性能优化 手动优化,依赖专家 自动优化,降低门槛
可移植性 有限,需大量修改 高度可移植,代码复用
insights
Modular的方法实现了真正的性能可移植性,这是连英伟达自身都未能完全实现的目标
public
拉特纳指出:”没有其他软件栈能做到这一点…就连英伟达也没有实现性能可移植性。CUDA在某种程度上可以在A100和H100上运行,但实际上,你必须重写代码才能获得良好的性能。”
05

memory 内存与计算优化

storage
Modular的引擎包含先进的内存管理系统,能够优化数据在不同内存层次间的移动
grain
自动识别计算图中的优化机会,如算子融合、内存重用和批处理优化
sync_alt
针对生成式AI工作负载的特殊优化,如注意力机制的高效实现和长序列处理
data_object
通过分析模型结构和数据流,自动选择最佳的数据布局和计算策略
Modular的CUDA替代方案:原理、架构与设计思想

集群管理功能

智能路由与资源管理

01

hub 集群管理架构

architecture
Modular构建了数据平面和控制平面,能够在节点之间连贯地路由请求,管理集群中的状态和分布
应用层:统一的API接口
arrow_downward
控制平面:智能调度与路由
arrow_downward
数据平面:分布式执行与状态管理
tune
通过抽象层,用户可以简单地将工作负载分配到指定数量的机器上,无需了解底层复杂细节
02

route 智能路由系统

smart_button
智能决策引擎
Modular的智能路由器能够根据模型特性、硬件能力和工作负载需求,自动选择最佳执行路径
memory
系统能够确定哪个模型在哪个地方运行得最好,考虑批量大小、序列长度支持等权衡因素
device_hub
将工作负载的不同部分分离到最合适的GPU上,这是只有排名前十的公司才能做到的事情
speed
拉特纳表示:”我们了解这些东西是如何工作的。我们可以利用对整个软件栈的理解能力,构建这个智能路由器,使其非常容易推出和扩展。”
03

sync_alt 状态管理

chat
针对生成式AI工作负载的有状态特性,Modular设计了一套高效的状态管理系统
history
聊天机器人等应用需要存储和访问用户之前的输入,以便用于未来的会话
location_on
处理来自同一用户的查询的最有效方式是在同一节点上,而不是将查询发送到任何可用的CPU
storage
Modular的状态管理系统能够在分布式环境中高效维护用户会话状态,确保一致性和低延迟
04

diversity_3 异构硬件支持

devices_other
Modular的集群管理能够处理不同类型的异构硬件,甚至是具有不同内存大小的英伟达GPU
grid_view
平台团队面临的复杂程度更高,因为他们需要管理多个工程团队不断变化的工作负载和需求
硬件类型 优化策略
高内存GPU 适合大型模型和长序列处理
高计算GPU 适合计算密集型操作和批处理
CPU节点 适合预处理、后处理和状态管理
auto_awesome
Modular的集群管理系统能够自动识别硬件特性,并将工作负载分配到最合适的硬件上
05

settings_suggest 弹性与成本优化

attach_money
传统云系统具有弹性,但基于GPU的云系统工作方式不同,因为GPU价格昂贵
calendar_today
用户通常会在数月或数年的时间里预订固定数量的GPU,从成本管理角度看,这与购买和销售本地部署的GPU相当
trending_up
Modular的集群管理通过智能资源分配,帮助用户最大化利用已预订的GPU资源
insights
系统提供资源使用分析和建议,帮助用户优化硬件投资和运营成本
Modular的CUDA替代方案:原理、架构与设计思想

设计思想

Modular的”AI民主化”理念

01

public AI民主化核心理念

lightbulb AI民主化
Modular的理念是让AI民主化,将控制权交还给软件开发人员和平台团队,而非集中式云服务。这种理念贯穿于其产品设计和企业战略的各个方面。
settings_accessibility
赋能开发者:Modular相信AI技术应该被广泛使用,而不是被少数公司垄断
diversity_3
降低门槛:通过简化复杂性,让更多开发者和企业能够利用AI技术
devices
硬件无关性:作为纯软件公司,Modular致力于构建适用于所有硬件的软件栈,打破硬件壁垒
02

compare_arrows 与集中式云服务的区别

“我们不会从你手中夺走你的人工智能,相反,我们会为你提供工具和技术,让你可以在你的计算机上部署人工智能,无论是本地部署还是在云端。”
— Chris Lattner, Modular CEO
特性 Modular方法 传统云服务
数据控制 用户保留数据控制权 数据通常上传到云平台
部署方式 本地或云端灵活部署 主要依赖云端服务
技术门槛 降低,提供工具和抽象 较高,需要专业知识
商业模式 工具和技术提供商 服务提供商
psychology
拉特纳指出:”这与很多(公司)的做法非常不同,那些公司会说人工智能太难了,把你所有的数据、所有的模型都给我们,我们来帮你做。”
03

integration_instructions 简化AI复杂性

code
让开发人员不必了解硬件方面或人工智能研究方面的所有复杂性
build_circle
开发者可以专注于构建他们的智能工作流程或定制的检索增强生成(RAG)解决方案
auto_awesome
统一编程模型
提供一致的编程体验,无论底层硬件如何
settings_suggest
高级抽象
隐藏底层复杂性,让开发者专注于应用逻辑
speed
自动优化
编译器自动优化代码,无需手动调整
extension
模块化设计
组件化架构,易于扩展和维护
04

groups 赋能平台团队

admin_panel_settings
Modular的目标是让平台团队能够掌控人工智能,而不是依赖于外部服务
manage_accounts
为平台团队提供工具和技术,使他们能够管理企业内部的AI基础设施
security
满足企业对数据安全、隐私和合规性的要求
trending_up
帮助企业在保持控制权的同时,跟上AI技术发展的步伐
05

handshake 开放生态系统

share
Modular正在构建一个开放的生态系统,让更多开发者和硬件厂商参与其中
hub
成为芯片制造商和软件开发人员之间的桥梁,促进创新和合作
school
通过文档、教程和社区支持,降低学习和采用门槛
“随着我们释放(这项技术的力量),我们现在才刚刚开始做到这一点,我们可以让全新的一类人能够为所有新推向市场的硬件编程,并且以一致的方式做到这一点。”
— Chris Lattner, Modular CEO
Modular的CUDA替代方案:原理、架构与设计思想

未来展望

Modular的硬件支持计划与生态系统发展

01

calendar_today 硬件支持时间表

2025年底
非英伟达GPU和其他加速器支持
Modular计划在2025年底开始支持非英伟达GPU和其他类型加速器,进一步扩大其硬件兼容性范围
devices_other
这一扩展将使Modular的软件栈能够支持更多样化的硬件生态系统,包括AMD、Intel等厂商的GPU
memory
还将支持专用AI加速器,如TPU、NPU和其他新兴硬件架构
speed
基于Modular在英伟达GPU上取得的成就,预计新硬件支持将同样实现高性能
02

trending_up 持续优化与创新

auto_awesome
技术迭代
Modular将继续优化其软件栈,以支持更多硬件和更复杂的AI模型,保持技术领先地位
model_training
除了推理引擎,Modular还计划扩展到AI训练领域,提供端到端的AI开发平台
code
Mojo语言的持续演进,增加更多AI特定功能和优化,提高开发效率
hub
构建更完善的开发者工具链,包括调试器、性能分析器和可视化工具
03

handshake 与英伟达生态系统的关系

“情况很复杂。英伟达已经宣布了一些即将推出的软件特性,我认为这些特性受到了Modular的启发,其中包括一些与Modular对Python编程的关注相呼应的内容。”
— Chris Lattner, Modular CEO
compare_arrows
拉特纳指出,英伟达的增强功能目前还不存在,也不能在所有的GPU上运行,而且推测永远不会在其他公司的GPU上运行
thumb_up
尽管存在竞争关系,拉特纳表示:”我欢迎这个领域的好想法,而且我很高兴他们(英伟达)也认为我们走的方向是正确的。”
insights
这种相互影响表明Modular的技术方向得到了行业认可,也推动了整个AI计算生态的发展
04

groups 生态系统建设

diversity_3
Modular正在构建一个开放的生态系统,让更多开发者和硬件厂商参与其中
school
开发者社区
建立活跃的开发者社区,提供文档、教程和技术支持
business
硬件合作伙伴
与芯片制造商合作,确保新硬件得到良好支持
extension
插件生态
鼓励第三方开发插件和扩展,丰富功能
public
开源项目
通过开源项目促进技术共享和社区贡献
05

lightbulb 长期愿景

language
Modular的长期愿景是成为AI计算的通用平台,打破硬件壁垒,实现真正的性能可移植性
rocket_launch
通过技术创新和开放合作,推动整个AI行业向前发展,让AI技术更加普及和民主化
psychology
拉特纳表示:”随着我们释放(这项技术的力量),我们现在才刚刚开始做到这一点,我们可以让全新的一类人能够为所有新推向市场的硬件编程,并且以一致的方式做到这一点。”
auto_graph
Modular相信,通过其技术栈,可以加速AI创新,降低采用门槛,让更多组织和个人受益于AI技术

发表评论

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 知差(chai)网 🐾 DeepracticeX 社区 🐾 老薛主机 🐾