扫码加入

  • 正文
  • 相关推荐
申请入驻 产业图谱

Tenstorrent芯片深度解析:RISC-V指挥、以太网互联、显式SRAM管理

20小时前
110
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

芯片行业的传奇人物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

我们熟悉的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芯片拓扑

机架级扩展

芯片设计成这样,编程怎么办?

现在官方主推的SDKtt-Metalium,风格类似OpenCL,C++接口,从单核心到多芯片都能搞。

软件的流程大概就是:开设备 → 分缓存 → 传数据 → 编内核 → 分配循环缓冲区 → 设参数 → 执行 → 等待完成 → 回读结果。

里头有个东西叫LLK,也就是低层内核,挺聪明的设计,因为不同代硬件向量单元宽度不一样,Grayskull是64位,到Wormhole砍成32位了,你用LLK写代码,它自动找对应实现,不用你改代码重新编译,向前兼容做好了。

TTNN是建在Metal之上的神经网络库,给你PyTorch风格API用,写起来快,但记住,它是「泄漏抽象」,硬件特性你还是得知道,不然踩坑都不知道怎么死的。

比如转置、切片这些操作,在分块维度上特别慢,因为真得搬内存重新排序,不是GPU上那种假操作,这个一定要注意。

Python用完SRAM记得手动释放,不然GC来不及你就OOM了。

最后唠两句

Tenstorrent这个路子,确实是跳出了GPU几十年的思维定势,用确定性换性能,要求程序员更操心数据搬来搬去,但换来的是效率更高,性能更稳。

现在AI芯片百花齐放,不一定堆核心就是对的,这种另辟蹊径的设计,反而说不定能走出新路。

 

参考文章:https://clehaxze.tw/gemlog/2025/04-21-programming-tensotrrent-processors.gmi

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录