Tenstorrent TT-Metal v0.58.0-rc27版本技术解析
Tenstorrent TT-Metal是一个面向AI加速的高性能计算框架,专注于为深度学习工作负载提供高效的硬件加速支持。该项目通过创新的架构设计,为大规模神经网络模型如LLaMA、Stable Diffusion等提供了优异的性能表现。
本次发布的v0.58.0-rc27版本带来了多项重要更新和优化,主要聚焦在性能提升、功能增强和稳定性改进三个方面。下面我们将详细解析这个版本的技术亮点。
核心架构优化
设备性能参数调整
开发团队对设备性能参数进行了精细调整,包括更新了设备性能余量(device perf margins),这些调整有助于更准确地评估和预测硬件在实际工作负载下的表现。性能参数的优化直接影响到任务调度和资源分配的效率。
异步模式API清理
此版本移除了遗留的异步模式API(Async Mode APIs),这是框架演进过程中的一个重要里程碑。通过清理过时的接口,代码库变得更加简洁,同时也减少了潜在的错误来源和维护负担。
功能增强与扩展
张量运算支持扩展
-
新增广播操作支持:引入了实验性的
ttnn.experimental.broadcast_to操作,扩展了张量广播能力,为更复杂的张量运算提供了基础支持。 -
数据类型支持扩展:
- 为
ttnn.add操作增加了uint16数据类型支持 - 为关系运算添加了整型支持
- 实现了LLK层面对eq操作的整型支持
- 为
-
矩阵运算增强:增加了对0D、1D和0V维度的matmul运算支持,扩展了框架处理不同维度数据的能力。
分布式计算优化
-
AllGather操作改进:为
all_gather_concat操作添加了对RM输入的支持,并为其输出实现了隐式tilize处理,提升了分布式计算的效率。 -
Reduce Scatter代码重构:修复并去重了reduce scatter代码中围绕集群轴计算接收器/发送器ID的逻辑,提高了代码的健壮性和可维护性。
模型支持与优化
Stable Diffusion XL相关改进
-
VAE模块增强:增加了VAE midblock和upblocks的支持,为Stable Diffusion XL模型提供了更完整的VAE解码器实现。
-
卷积层优化:修复了SDXL中split卷积的bias处理问题,并更新了相关的conv2d测试用例。
-
GroupNorm测试更新:针对SDXL模型的ttnn.group_norm操作更新了测试用例,确保其正确性和稳定性。
LLaMA模型性能优化
-
SDPA解码优化:通过使用16x32瓦片(tiles)和移除copy_blocks操作,显著提升了LLaMA模型的SDPA解码性能。
-
RMS Norm融合:尝试了将pre和post RMS Norm操作进行融合的优化方案,虽然当前版本中这一更改被回退,但为未来的优化方向提供了参考。
系统稳定性与工具链改进
监控与诊断工具
-
新增NOC写入监控:实现了watcher机制来捕获对DRAM的noc_inline_dw_write操作,有助于发现潜在的性能问题和内存访问异常。
-
系统健康检查:新增了test_system_health二进制工具,专门用于在6U/T3K硬件上运行系统健康检查。
-
性能分析增强:为DumpDeviceProfileResults添加了FORCE_PUSH_TO_TRACY选项,提供了更灵活的profiling数据导出方式。
测试与验证
-
ResNet50稳定性测试:新增了针对ResNet50模型的稳定性测试脚本,确保模型在长时间运行下的可靠性。
-
TopK优化:修复了TopK操作在L1缓存限制下的问题,针对单核实现进行了特别优化,多核场景则保持原有实现。
-
性能测试调整:根据实际运行情况,调整了Falcon7b模型的性能容忍阈值,以应对CI环境中的性能波动。
构建与部署改进
-
开发包支持:开始支持-dev开发包,为开发者提供了更便捷的开发环境搭建方式。
-
版本信息完善:包含了足够的Git信息,使得Git Describe能够正常工作,便于版本追踪和管理。
-
Docker镜像更新:为软件打包准备了必要的Docker镜像更新,简化了部署流程。
总结
Tenstorrent TT-Metal v0.58.0-rc27版本在性能、功能和稳定性方面都取得了显著进展。从底层硬件性能参数的精细调整,到高层模型支持的扩展,再到开发工具链的完善,这个版本为AI加速领域提供了更加强大和可靠的解决方案。特别是对Stable Diffusion XL和LLaMA等主流模型的支持优化,使得框架在实际应用场景中的表现更加出色。随着异步模式API的清理和多项基础运算的增强,TT-Metal的架构也变得更加清晰和健壮。
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C051
MiniMax-M2.1从多语言软件开发自动化到复杂多步骤办公流程执行,MiniMax-M2.1 助力开发者构建下一代自主应用——全程保持完全透明、可控且易于获取。Python00
kylin-wayland-compositorkylin-wayland-compositor或kylin-wlcom(以下简称kywc)是一个基于wlroots编写的wayland合成器。 目前积极开发中,并作为默认显示服务器随openKylin系统发布。 该项目使用开源协议GPL-1.0-or-later,项目中来源于其他开源项目的文件或代码片段遵守原开源协议要求。C01
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7GLM-4.7上线并开源。新版本面向Coding场景强化了编码能力、长程任务规划与工具协同,并在多项主流公开基准测试中取得开源模型中的领先表现。 目前,GLM-4.7已通过BigModel.cn提供API,并在z.ai全栈开发模式中上线Skills模块,支持多模态任务的统一规划与协作。Jinja00
agent-studioopenJiuwen agent-studio提供零码、低码可视化开发和工作流编排,模型、知识库、插件等各资源管理能力TSX0126
Spark-Formalizer-X1-7BSpark-Formalizer 是由科大讯飞团队开发的专用大型语言模型,专注于数学自动形式化任务。该模型擅长将自然语言数学问题转化为精确的 Lean4 形式化语句,在形式化语句生成方面达到了业界领先水平。Python00