硅仙人抛弃GPU老路,Tenstorrent芯片深度解析:RISC-V指挥、以太网互联、显式SRAM管理
日期:2026-03-27 10:12:40 / 人气:1
当芯片行业的传奇人物Jim Keller——那位曾缔造了AMD K8、Apple A4/A5、Zen架构、特斯拉自动驾驶芯片的“硅仙人”——选择加入一家名为Tenstorrent的初创公司时,整个半导体圈都在问:是什么吸引了他?
答案就藏在这家公司的芯片里。

当所有人都沿着GPU的老路,拼命堆核心、堆显存,在SIMT的赛道上内卷时,Tenstorrent带着Jim Keller对计算架构的深刻理解,直接掀了桌子:
谁说AI芯片必须长得像GPU?
今天,我们就深度拆解,来聊聊这款由架构宗师加持的“异类”芯片,到底凭什么另立山头。
架构设计直接推翻GPU那一套
跟大家说,Tenstorrent的思路真的是颠覆式的。
开局先来一张系统图,芯片采用了NOC的架构。
D=DRAM,T=Tensix,E=Ethernet,A=ARC/management,P=PCIe
Tenstorrent Wormhole芯片NoC网格结构
我们熟悉的GPU,就是搞几千个小核心堆一起,靠SIMT并行。
SIMT说白了就是单指令多线程,通俗讲就是让一个指令指挥一堆线程干活,说白了就是拼数量。
但Tenstorrent不搞这个,它把芯片做成一张网格,每个格子放一个叫Tensix的计算单元,通俗说就是Tenstorrent自家设计的计算核心,然后配点内存、以太网节点,拼起来一整张网。
每个Tensix里头有啥:
- 5个小型RISC-V CPU,只负责发指令,不参与计算
- 2个NoC接口,NoC就是片上网络,负责各个节点之间传数据
- 向量单元+矩阵/张量单元干活计算
- 自带1.5MB SRAM存数据
Tensix核心大致框图
典型数据流啥样?其实就是流水线:
1. NoC从DRAM读数据
2. 解包器解包成计算单元认得格式
3. 矩阵单元干计算
4. 打包器把结果打包装好
5. NoC把结果发回DRAM
Tensix内部数据流
两个NoC都是单向跑,方向还相反,走2D环面拓扑,好处就是功耗低,还保证你任何节点都能摸到。
玩得野一点,你能同时用两个接口读数据,直接带宽翻倍,就看你敢不敢玩。
双NoC方向相反
不同内核之间怎么同步?
用循环缓冲区,基于硬件互斥锁和SRAM做的,本质就是个硬件加速队列,数据准备好了自然能通知到,比软件同步靠谱多了。
循环缓冲区跨内核传数据
核心设计亮点,确实思路清奇
1. SRAM随便存,告别缓存置换玄学
传统CPU/GPU靠缓存层次结构,自动置换,你不知道啥时候数据就被踢出去了,性能全看脸。
Tenstorrent直接不搞缓存,所有SRAM你程序员自己管,要啥数据自己手动搬进来,好处就是性能百分百确定,没有意外,当然对你要求也更高了。
而且每个核心1.5MB SRAM,中间张量直接放SRAM,不用动不动去DRAM,性能能效都上来了。默认交错访问,合适就分片存,能把NoC拥塞降下去。
分片存储下NoC无拥塞
2. 原生32x32分块计算,天生为深度学习准备
现在深度学习不就是矩阵乘法堆出来的吗?Tenstorrent直接硬件原生支持32x32分块,你不用像GPU那样折腾半天喂tensor核心,人家里头就给你做好了。
说白了,分块就是把大矩阵切成小块放SRAM里算,这么搞计算密度比你一行一行读高太多了。
分块存储示意图
虽然现在GPU也学乖了,知道要分块,但都是软件折腾,Tenstorrent直接硬件搞定,这就是差距。
摆脱传统软件束缚
多芯片扩展直接用以太网,省钱还好用
现在大模型越来越大,单芯片肯定放不下,要多芯片拼。
别人都搞私有互连,什么NVLink,死贵死贵。
Tenstorrent直接用现成以太网,400Gbps现在数据中心都铺开了,成本不知道低多少,性能还不弱。
更绝的是,Tenstorrent芯片自己就能当交换用,计算交换一体化,你说会玩不会玩?
N300卡连接框图
从卡到机箱到机架,随便扩,8颗、32颗、多主机都能拼,拓扑就是网格,想扩多少扩多少。
QuietBox 8芯片拓扑
机架级扩展
芯片设计成这样,编程怎么办?
现在官方主推的SDK叫tt-Metalium,风格类似OpenCL,C++接口,从单核心到多芯片都能搞,它为Tenstorrent硬件提供了主机系统与硬件之间的抽象层,程序员可通过其C++接口编写在Tensix硬件上运行的内核、配置并执行这些内核,从而获得对硬件和数据移动的完全控制,进而针对特定用例优化代码性能和效率[1]。
软件的流程大概就是:开设备→分缓存→传数据→编内核→分配循环缓冲区→设参数→执行→等待完成→回读结果。这一流程遵循Tenstorrent硬件的底层编程理念,即从单Tensix核心的内核开始,逐步扩展到多核心调度,最终实现多设备规模化部署,以适配大型模型落地需求[1]。
里头有个东西叫LLK,也就是低层内核,挺聪明的设计,因为不同代硬件向量单元宽度不一样,Grayskull是64位,到Wormhole砍成32位了,你用LLK写代码,它自动找对应实现,不用你改代码重新编译,向前兼容做好了。LLK本质是硬件特定的内核实现,是tt-Metalium框架的重要组成部分[1]。
TTNN是建在Metal之上的神经网络库,给你PyTorch风格API用,写起来快,但记住,它是「泄漏抽象」,硬件特性你还是得知道,不然踩坑都不知道怎么死的。
比如转置、切片这些操作,在分块维度上特别慢,因为真得搬内存重新排序,不是GPU上那种假操作,这个一定要注意。
Python用完SRAM记得手动释放,不然GC来不及你就OOM了。值得注意的是,tt-Metalium编程中,数据移动与缓冲区管理是核心环节,循环缓冲区作为FIFO数据结构,可实现内核间的通信与同步,让读取数据、计算、写入结果的流程实现重叠执行,提升整体效率[1]。
最后唠两句
Tenstorrent这个路子,确实是跳出了GPU几十年的思维定势,用确定性换性能,要求程序员更操心数据搬来搬去,但换来的是效率更高,性能更稳。
现在AI芯片百花齐放,不一定堆核心就是对的,这种另辟蹊径的设计,反而说不定能走出新路。
参考资料/注释:
[1] Tenstorrent. (2026). Getting Started [EB/OL]. https://docs.tenstorrent.com/tt-metal/latest/tt-metalium/get_started/get_started.html
作者:蓝狮娱乐注册登录平台
新闻资讯 News
- 普及高中教育:破解“中考焦虑”...03-27
- 华为“下沉”与“补位”:千元机...03-27
- 广东人自己的洗浴中心:公交车03-27
- Claude亲手“杀死”OpenClaw...03-27

