Jim Keller的AI芯片编译器名为BUDA,硬件细节曝光!
👆如果您希望可以时常见面,欢迎标星🌟收藏哦~
来源:内容由半导体行业观察(ID:icbank)编译自morethanmoore,谢谢。
在笔者看来,对于那些真正制造芯片和硬件的公司来说,是将其交到大部分的开发人员手中,然而太多的初创企业只与一两个关键客户打交道。
如果说 NVIDIA 已经展示了如何取得成功,那就是现在每个人都可以从本地 PC 购买支持 CUDA 的 AI 加速器五金店。这意味着存在一支开发人员大军,其中一些是自制软件,一些是为这些平台开发的商业软件。
因此,必须将一些硬件纳入生态系统,人工智能初创企业也将其作为长期积极的目标,而不是立即的收入增长。
由Jim Keller担任CEO的Tenstorrent 是最早这样做的公司之一。
去年 12 月,他们悄悄向大众提供了 Grayskull PCIe 卡,基本上是一个 AI 开发人员套件。e75 是半高版本,配备 75 瓦芯片,并配有风扇,因此至少您可以将其放入 PC 中。而 e150 是功率更高、内存更大的版本,设计为双宽 PCIe 卡适用于有气流的服务器。这些芯片的售价分别为 599 美元和 799 美元。
有一个小规定——你必须告诉 Tenstorrent 为什么你想要这个硬件。首次运行 Grayskull 卡的目的是让开发人员致力于项目并提供有关软件堆栈的反馈,以长期改进它。因此,这是一个规模较小的硬件,因此需要挑选和选择,但任何拥有令人信服的潜在用例、最终客户或自制软件的人,都有机会去制作自己的案例并购买一个。
如前所述,e75 是一款 75W PCIe 4.0 卡,具有 96 个 Tensix AI 内核,运行频率为 1 GHz,具有 8 GB LPDDR4 内存和 102.4 GB/秒的潜在带宽。该冷却套件的设计更像是服务器鼓风机,但可用于标准 PC 外形规格。该芯片上有 96 MB 的 SRAM,目前支持 Ubuntu 20.04,并且很快就会支持其他操作系统。
e150(左侧)是该芯片的完全启用版本,具有 120 个 Tensix 内核,但使用相同的 PCIe 4.0 x16 接口以 150W 运行。时钟频率提高了 20%,达到 1.2 GHz,这些额外的内核还提供总共 120 MB 的 SRAM。仍然有 8 GB LPDDR4,带宽略高,为 118.4 GB/秒。
现在我可以想象你们中的一些人在想什么——8 GB 的内存对于现代人工智能推理来说远远不够。Tenstorrent 确实提供了完整的模型支持页面,其中包括 BERT、ResNet、YOLOv5、U-Net 等,但需要注意的是,Grayskull 并不是最终批量生产的设计。这纯粹是一个开发工具包,让人们在下一代大型硬件出现之前习惯硬件配置和软件堆栈。
软件堆栈有两种类型:高级和低级。高层称为 TT-Buda,使用更高级别的 API 来启动和运行,以及现代机器学习框架的接口。较低级别是 TT-Metalium,它为自定义操作符、自定义控制甚至非机器学习代码提供对硬件的细粒度控制。Tenstorrent 声明没有黑匣子,没有加密的 API,也没有隐藏功能。
作为第一次正式拆箱硬件,我去了 Tenstorrent 办公室,与 Tenstorrent 研究员 Jasmina Vesiljevic 博士坐下来,了解用户在拿到卡后如何使用硬件。
Ian Cutress(IC):Tenstorrent 的架构和软件开发进展如何?
Jasmina Vesiljevic(JV):我们做了很多软硬件协同设计,其中软件的关键设计之一。如果你只是制造新硬件而没有人可以对其进行编程,那还有什么意义呢?因此,切入点非常重要,因此硬件/软件协同设计是我们所做工作的关键构建模块之一,而正是为了保持这一流程,推动了 Tenstorrent 的许多工作。
IC:那么您的背景是什么促使您加入 Tenstorrent 的呢?
JV :我获得了 FPGA 博士学位——一点点 CAD 工具、布局和布线,然后大部分是高级综合方面的。有时候在FPGA行业我们会开玩笑说FPGA是世界上最难编程的东西,这让我们的疼痛忍受度非常高!
IC:[笑]所以你可以“被打”很长时间?
JV:是的,完全正确!它给了我们强大的动力,使新颖的架构变得真正有趣,真正方便编程 - 创建这些简单的 hello world 程序入口点,然后创建修补起来很有趣的硬件和软件环境。开发人员对新功能的出现感到充满力量和兴奋,并且可以集思广益并思考他们可以在此基础上构建的所有酷炫有趣的应用程序。
IC:我与许多 FPGA 公司交谈过,我总是说你们需要抽象得越来越高,并使其更易于访问,我觉得我们在机器学习方面处于同一点。
JV: 我们是!
IC:我们正在处理很多这样的框架,PyTorch、Tensorflow、ONNX 等,现在对这些框架的支持至关重要?
JV: 没错,考虑所有入口点及其用途,然后考虑抽象级别,这真的很有趣。然后,它是高级入口点还是低级入口点——每一个入口点都很重要,但针对不同的用例。因此,如果您没有高级切入点,您总是希望拥有一个高级切入点。切入点是一个“与”而不是“或”的问题,你永远不想抓住开发人员并迫使他们走这条路。
IC:你不会强迫开发者!
JV: 你永远不能强迫开发商!你可以欢迎他们,你可以引导他们,让他们享受通往罗马的所有不同路径,在这种情况下,它更像是 Tenstorrent 和 Tenstorrent 硬件。是的,观看不同框架的开发真的很有趣。
IC:在我们走这条路之前,我想先谈谈我们来到这里的原因之一。我联系并询问要拆箱的硬件,Tenstorrent 说我们可以拆箱这两个。
JV: 这些盒子里有一个我们称之为 Grayskull 的产品,或者我们称之为 Grayskull 的芯片,它是我们的第一代硬件,我们的第一代架构,所以它是第一个向客户推出的产品。它是一个开发人员工具包。有 2 种不同的卡,e75 是较小的卡。
IC:e75 因为它的功率是 75 瓦?
JV: 75瓦,然后另一个是e150 ,再次参考瓦数,稍微大一点。
IC:我们已经知道这是PCIe版本,半高全长卡。这是一个典型的 ML PCIe 卡,我们可能会在数据中心进行大规模范围推理,但这是开发人员版本,因此有更多的品牌。不过你有一个风扇,很难不被注意到!
JV: 你必须给这个家伙插上电源——它会盖过你邻居的一点噪音,但声音没那么大,而且它确实适合你的桌面。
IC:即使在 75w 功率下,您仍然需要在这种外形尺寸下进行一定程度的主动冷却。我的意思是,如果您将其放入双宽、双适当高度的 PCIe 外形尺寸中,也许被动冷却器可以工作。
JV: 没错,我们正在探索和优化冷却风扇方面的一些有趣的事情,因此接下来会有更多有趣的公告。这就是今天的样子,我们非常渴望将它们拿出来并交到开发人员手中。我们对冷却没意见,这很有趣,我们只是希望人们使用它们,我们希望他们访问网站,下载工具,插入工具,尝试一下,然后使用硬件。
IC:如果我没记错的话,E75 是 599 美元,E150 是 799 美元。我知道对于很多入门级开发人员来说可能看起来很多钱,但现实的期望是这是一个开发人员套件,它是为开发人员掌握系统而设计的,因此将会有小型/中型企业会看看这对他们的模型是否有用,这就是它所处的价格点类型,而且是小批量的部分。作为参考,SiFive 的开发板售价为 666 美元,而高通公司的 Hexagon DSP 套件售价约为 600 美元,因此这个价格正好符合这个价格。
JV:没错,棒球场就在那里。我们希望让硬件变得易于使用——我们不希望它给你带来太大的负担,但我们希望人们能够兴奋地使用它。
IC:我与这个领域的很多公司交谈过,我一直问他们‘开发套件在哪里?使其易于访问!这些人实际上正在这样做,因为它有利于像 Tenstorrent 这样的公司,拥有数千名开发人员,即使在高级框架上,也可以访问他们的硬件和优化。但是,是的,我们现在确实拥有硬件。
JV: 没错,你确实可以闻到它的味道!我们很兴奋。我们非常高兴能够将这些内容交到开发人员手中并获得反馈。Tenstorrent 非常自豪能够提供硬件并让人们向我们提供反馈,无论好坏,我们都想听到。
IC:让我们更多地了解一下这种体验会是什么样子。对于取得联系并最终获得一张卡片的开发人员来说,它会是什么样子?是否只是通过网站链接来下载内容那么简单?
JV: 所以这张卡片欢迎你并告诉你要去哪里——这是你的第一个入口点。从那里您可以下载驱动程序、工具并进行基础设置。它们是赌注 - 因此您可以将其插入桌面,然后安装我们的驱动程序和工具。
IC:仅支持 Linux 还是也支持 Windows?
JV: 我们还不支持Windows。它已在路线图上,但尚未实现。
JV: 安装基本工具和驱动程序后,您可以检查卡的运行状况。您可以看到它出现,并且有一些工具可以让您确认硬件是否正常工作,并且您的计算机可以识别已插入的内容。从那里您可以选择走两条路径之一 - 一种是软件我们称之为 BUDA 的堆栈,它是我们的编译器。
IC:BUDA,听起来很熟悉。
JV: 它在我们的网站上 - 这是我们一直在开发的编译器,这是一种让模型开箱即用的非常有趣的方式。你从 Hugging Face 下载我们的模型,BUDA 会为你编译,这真的很有趣。我们将此入口点称为高级自上而下的入口点,因为您不必更改环境,不必重写模型,它是“按钮”并且可以工作。它将在硬件上运行并向您显示正在发生的情况。
JV:另一种方式是自下而上的堆栈,我们称之为裸机编程。这个级别要低得多,所以它回到了抽象和入口点。用例有点不同。它要求您用 Python API 重写内容。这不是 PyTorch 开箱即用的体验,它是为那些希望对他们在我们的硬件上运行的工作负载进行细粒度控制的开发人员提供的,并且有另一种编写内核的路径,一直到在我们的 RISC 内核上运行并驱动繁重的数学逻辑的内核。
IC:那么自定义操作符之类的东西呢?
JV: 自定义运算符、自定义数据移动、他们想要插入到 LLM 中的新颖操作的自定义探索、控制流,就像任何其他一样,你知道 - 奇特的缓存、新的嵌入。作为开发人员,您可以访问所有这些内容,供您进行修改,并且您永远不会被高级抽象层阻止,您可以绕过它,可以直接进入内核并控制低级硬件。
IC:为了让开发人员做到这一点,他们需要对底层架构有深入的了解,那么很快就会有一些关于 Tensix 内核的披露吗?
JV: 没错。因此,我们从查看过我们的裸机软件堆栈的客户那里得到的反馈是,他们进来,开始使用我们的硬件,几周后说“我们了解您硬件中的所有内容”。现在真的很有趣!我们有文档,我们的低级是一个重要的入口点,但我们有解释架构和编程模型视图的文档。我们有 2D 核心网格、NoC,因此我们确实对它们进行了基础设置。然后我们看到的情况是专家将登录并且他们将阅读我们的低级编程模型。我们说这一层只是硬件的反射、图像——所以所见即所得。我们不会试图为您打包它,我们不会试图引导您这样或那样。硬件中有什么就是那里有什么,然后裸机编程模型只是反映如何直接驱动引擎中可用的所有内容,这真的很酷。我很高兴与社区分享这一点。
IC:迄今为止与您合作的开发人员以及客户(公司和合作伙伴)显然到目前为止他们都已完全遵守保密协议。但任何开发人员接触到这一点都意味着不会有保密协议。我们的想法是出去玩,说话,戳戳,告诉我们哪里出了问题,告诉我们什么是对的等等?
JV: 是的,我们需要反馈!我们希望社区能够参与我们将要发布的硬件。我们还将开源完整的裸机软件堆栈,这意味着您当然可以看到 API,但您也可以看到幕后的所有内容。您可以看到内核的编译方式、内存分配器、运行时参数复制到设备上的方式以及内核的分派方式。您可以看到所有的管道和功能,这太酷了。
IC:有人为这些卡编写的所有内容都将向前兼容所有未来的 Tenstorrent 硬件,对吧?
JV: 这是一个有趣的观点。也许正确的思考方式是 API 有两个方面,因为这有点像 API 兼容性思维过程。所以有主机 API,然后有内核 API。
在API的主机端,我们研究了OpenCL,我们研究了CUDA,我们非常熟悉这些低级编程模型。我们不想在那里重新发明轮子,所以我们模仿这些 API,使其变得直观,并且行为非常相似。我们希望它们对于那个世界的开发者来说非常熟悉,因此主机 API 能够相对保持向后兼容。我可能一说出来就会后悔,但他们已经很明确,而且已经到了一定程度的成熟。这些领域的设计空间并未得到广泛探索。
然后在内核 API 方面,强烈希望保持向后兼容性。这对我们很重要。然而,实际上,如果您被允许使用下一代架构进行创造性的着色,您就可以在性能和功能上实现飞跃。这是一个有意识的决定,为了顺利进行,这是一个新的微架构,新一代,我们将保持向后兼容性,或者我们将允许自己跳出框框并实现飞跃
IC:所以,这是向后兼容,但一切都将向前兼容,你为这一代编写的任何内容都可以在下一代上使用吗?
JV: 这就是目标。
IC:我知道 Tenstorrent 一直对即将到来的路线图直言不讳,尤其是在该公司正在吸收新客户和新投资者的情况下。其中一些事情正在发生变化。从你的角度来看,显然支持这个是一回事,但是你是从高层和底层软件层来看的吗?
JV: 高级入口点不太容易受到低级更改的影响,因此开发人员喜欢它们,并且因为当他们处于那种高阶编程模型中时,它为他们提供了获得所需结果的快速路径。在开发人员使用大量框架之前,我们希望做到这一点,以及我们所看到的(回到我们之前所说的)。随着时间的推移,它们都整合到了 PyTorch 上,因此进行了整合工作,现在我们看到框架数量再次增长——这次是高级框架。有趣的是,开发人员似乎喜欢为特定目的而做的事情,而且我们看到了很多专业化——如果你创建一个旨在完成阳光下所有事情的高级 API,你通常会遇到泄漏抽象和开发人员会感到恼火。所以看起来,在高层,还是有一些特殊的东西的。专门针对特定目的框架的 API,我们也参与其中。
通过低级 API,我们希望确保开发人员始终可以访问硬件,并且没有任何内容对他们隐藏。IP业务是我们业务的一个重要分支,非常重要,对于潜在IP客户或已经是IP客户的客户来说,他们想确切地知道其中有什么。他们想要控制它,想要驱动它,有时他们会得到诸如“我希望我有这个功能或那个功能”之类的想法,他们可以在软件和硬件中形象化这一点。这个切入点对我们来说非常重要。
IC:我们面前的这些卡可以带回家用于您的工作站,但 Tenstorrent 也已经在云中拥有了一些硬件。怎么样?
JV: 这是一个简单的切入点,而且非常方便。通过 SSH 输入,然后您就可以进入“hello world”。所以这真的很有趣,而且这是让人们访问硬件并尝试简单的事情的最快方式。然后他们尝试复杂的事情!我们现在有在云上运行的客户,这对我们来说是一个很好的测试平台。我们将产品发布到云端,并将软件交付到云端,因此他们是我们的第一批内部客户,反馈循环非常重要。到目前为止,我们的客户已经享受到了非常快速的周转,我们可以为他们提供机器访问权限,一切都已设置完毕并可以像他们通过 SSH 一样运行。
IC:所以你们之所以不向开发人员开放云,而是走硬件之路,可能是因为?
JV: 我们关注的是“和”而不是“或”,我们两者都想要。我们拥有一定量的云容量,如今我们的利用率几乎达到 100%。我们安装的每台新服务器都会有一个等候名单,等待尝试。我们希望确保开发人员可以在他们的桌面上获取硬件 - 这样他们就可以听到它运行的声音,并且可以继续安装所有工具并测试该流程。我认为对于铁杆认真的开发人员来说,他们喜欢能够接触硬件并安装并拥有自己手中的东西,而不是远离某个地方的服务器,以防万一发生问题而出现故障。这是关于赋予开发人员权力。
IC:因此,借助云,可以轻松进行快速更新,尤其是当客户不断投入资金时。对于个人开发者来说,您将如何与他们和社区讨论如何推出更新等事情?
JV: 所以我们有两个软件堆栈的版本 - 公告将与发布节奏一起进行。底层工具也有自己的版本,因此所有这些都将在我们的网站上公布,开发人员可以升级到他们认为合适的最新版本。当然,在云中,这对他们来说只是幕后的事情。
IC:当这个硬件推出时,你们已经准备好支持人员了吗?
JV:没错。我们是一个很小的团队。在裸机编程模型上,我们不是一个庞大的团队,而是一个由非常聪明的个人组成的小团队,但我们非常兴奋并致力于交付软件,开源它,并向社区展示它。也就是说,我们还没有达到能够提供服务并跟上大型拉取请求的阶段 - 我认为这很正常,我认为这有点像社区大多数人理解的成长阶段。我们希望能够开放地开发,我们希望能够展示现有的东西,然后我们有强烈的雄心去发展到可以与开源社区进行强有力的合作。
IC:还有数十家其他人工智能硬件初创公司在做自己的事情,这重要吗?您是否考虑过竞争与合作之类的问题?
JV: 我认为其他初创企业也在做与我们类似的事情,这会有所帮助。你知道这里的目标 - 我们正在与 Nvidia 竞争,我们希望有尽可能多的玩家加入我们的球场。当然,我们与他们竞争,当然我们的很多同事都在其他初创公司工作。我们都互相认识,所以很有趣。它使感恩节晚餐变得有趣。
IC:那么对于最终获得该硬件的人来说,他们应该做的第一件事是什么?为了确保一切正常,他们应该运行的第一个模型是什么?整顿程序是怎样的?
JV: 我们为这两种软件堆栈提供了一个登陆页面,可引导您完成前 5 件事。对于 BUDA,有一些模型您可以直接运行 - 只需点击 5 次鼠标和一个脚本即可运行。在裸机方面,有一些针对性能进行了优化的模型,您可以开箱即用,然后有一些内核可以运行并查看端到端的运行情况。该堆栈还附带调试工具、内核性能,并且我们集成到开源跟踪工具中,以便您可以查看正在发生的情况的性能概况。因此,这就是您想要了解的暴露和深入程度,前 5 件事会带您逐步沿着这条路一直运行内核并看看会发生什么。
IC:你多久需要向 Jim 汇报一下社区的言论——已经决定了吗?
JV:从每小时一次变为每天一次。这种情况很常见,他非常关心社区在做什么,他正在推动 Tenstorrent 对社区价值和软件开发价值有强烈的认识,并确保入口点对开发者来说确实方便和有趣。
阅读原文
https://morethanmoore.substack.com/p/unboxing-the-tenstorrent-grayskull
END
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第3663期内容,欢迎关注。
推荐阅读
『半导体第一垂直媒体』
实时 专业 原创 深度
公众号ID:icbank
喜欢我们的内容就点“在看”分享给小伙伴哦
微信扫码关注该文公众号作者