超越GPU:TPU能成为接班人吗?

news2024/11/19 4:38:07

在计算机的世界里,硬件技术的发展一直在快速推进。今天,我们要谈论的就是一种特殊的处理器:TPU,全称是Tensor Processing Unit。在我们开始深入探讨TPU之前,先了解一下两个重要的芯片技术,FPGA和ASIC。

FPGA和ASIC

Altera是一家FPGA巨头

FPGA,全称为现场可编程门阵列,这是一种特殊的处理器,我们可以通过程序代码来控制其中的电路连线,从而实现某种特定的算法单元。简单来说,它就像一块空白的画板,可以根据需要进行编程和配置,实现各种硬件功能。使用FPGA,我们可以快速低成本地验证硬件设计,或者少量定制芯片的发行。

而ASIC,全称为专用集成电路,是为专门用途设计的芯片,如相机芯片、音频芯片、网卡芯片、挖矿芯片等等。可以说,对FPGA进行编程,就是把FPGA电路变成了一个ASIC。相比之下,FPGA需要的晶体管更多、能耗更大、单片成本也高。然而,FPGA没有硬件研发成本,但ASIC需要仿真、验证、流片等流程,如果不能大量发行,研发成本就不能被摊薄,反而整体成本更高。

了解了这两种技术之后,我们再来来看看TPU是什么?

什么是TPU?

TPU全称为Tensor Processing Unit,是一种张量处理器,属于一种ASIC。张量在物理学和数学上有着广泛的应用,它经常被用来表达几何性质和物理规律。对于初次接触张量这个概念的同学,应该完全不知其所云,我这里简单介绍下。大多数同学应该都听说过或接触过向量或者矩阵,在编程中向量可以使用一维数组表达,矩阵可以使用二维数组来表达,那么张量呢?它是多维数组。张量处理器就是专门用来进行多维数组运算的专用处理器,当然用它来搞搞矩阵、向量和单个数字的运算也完全没有问题,因为向量、矩阵都是张量的子集。

理解了什么是TPU,我们还要多问个为什么,为什么需要TPU?

为什么需要TPU?

其实在上面介绍ASIC时,我已经提到过了一些,包括为专门的用途设计和更低的成本,这里再展开详细说明下。

TPU主要是为了解决机器学习的计算问题,特别是深度学习。Google最初设计TPU是用来解决模型推断计算的问题,模型推断就是使用训练好的模型进行计算,输入参数、获取结果。比如我们使用ChatGPT聊天、使用Stable Diffusion出图等等都是模型推断。模型推断有以下特点:

  • 训练后的模型一般会被广泛应用,相比训练,后续的计算量会很大;
  • 推断工作的灵活性要求低,需要的电路相对简单;
  • 推断工作要保证响应时间,尽可能地低,专门的硬件会更容易处理;
  • 推断工作要尽可能低的功耗,还是因为大规模计算问题,累积的能耗不可忽视。

根据这些特点,使用专用的硬件设计就很有必要了,TPU就产生了,它内置了大量的矩阵运算单元,可以并行处理大量的矩阵运算,从而相比CPU和GPU大大提高了计算效率;同时由于它的专用硬件设计,其能耗也更低,这对于大规模计算降低成本特别重要。在Google论文里,它可以比CPU、GPU 快15~30 倍,能耗比可以高出 30~80 倍。

Google TPU V4

在TPU后来的迭代演化中,Google已经发布了四代TPU,它不仅能用于模型推断,也开始用于模型训练,每一代的性能都有显著的提升,广泛应用于语音识别、图片识别等深度学习任务中,表现出了很高的效率和性能。除了Google,其他的一些厂商,如阿里巴巴、华为等,也研发了自己的定制化AI芯片,这些芯片在设计理念上与TPU类似,都是为了提高深度学习任务的计算效率。

TPU的实现

我们继续了解下TPU是怎么做到这么优秀的。

它的设计思路非常简洁且实用。首先,它可以像显卡一样插在主板的PCI-E接口上,通过CPU向TPU发送指令,这样就可以向前兼容,设计发行时间也大大缩短。

其次,TPU的主要组成部分包括一个矩阵计算单元(固定硬件电路)和一个本地统一缓存区。这两个部分占据了TPU超过一半的空间。这是因为深度学习的计算主要是矩阵运算,矩阵计算单元的存在大大提高了运算速度。而缓存区则使用了SRAM,比常用的DRAM更快,尽管密度小,占用空间大,但是提高了数据的读写速度。

根据深度学习的特点,操作数都能控制在 -3 到 3,精度放到 2^6,一般就够了,因此在Google的TPU中,使用了8bit来表示浮点数,而且这样做的好处有很多。相比于32位或64位的浮点数,8位可以大大降低计算的复杂性,提高计算效率;还可以减少存储需求,降低内存带宽的压力。

TPU的局限性

如果你经常浏览AI资讯,提到硬件计算,似乎没什么人提及TPU,大多数谈的还是GPU,比如美帝最近又限制了Nvidia高端显卡的出口,甚至传言消费级的4090都要限制了,各大厂商都还在使用GPU搞深度学习、搞大模型,怎么没人用TPU呢?这是怎么回事呢?

首先虽然TPU的设计理念非常先进,性能和效率都比传统的CPU和GPU要高。然而,由于TPU是专门为深度学习设计的,所以在其他类型的计算任务中,它的性能可能并不出色。此外,TPU还需要特定的软件支持,这也可能限制了它的广泛应用。

其次成本,虽然使用TPU的总体成本比较低,但是由于TPU的生产技术相对复杂,生产成本相对较高,专业的芯片厂商可能不懂也不太关注后期的运行成本,生产积极性不高,所以一直是Google、华为、阿里巴巴这种云计算企业在引领这个区域,这是普通用户不容易接触到的。

最后,关于为什么很多厂商都在使用GPU做训练和推理,这主要是因为GPU的通用性和成熟的软件生态。GPU不仅可以用于深度学习,还可以用于图形处理、科学计算等多种任务。此外,GPU得到了TensorFlow、PyTorch等主流深度学习框架的良好支持,这使得开发者可以很方便地使用GPU进行深度学习的开发。相比之下,虽然TPU在深度学习任务中的性能更高,但由于其专用性和软件支持的限制,目前还无法完全替代GPU。

你觉得未来TPU能接GPU的班吗?


总的来说,TPU是一种强大的处理器,它在处理深度学习任务时表现出色,能大大提高计算效率,降低能耗,总体成本较低。但是显卡和TPU各有优势,选择使用哪种硬件取决于具体的应用场景和需求。

关注萤火架构,加速技术提升!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1389854.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

部署Tomcat

Tomcat简介 名称由来:Tomcat最初是由 Sun的软件构架师詹姆斯邓肯戴维森开发的,后来他帮助将其变 为开源项目,并由Sun贡献给Apache软件基金会,由于大部分开源项目OReilly都会出一本相关的 书,并且将其封面设计成某个动物…

基于SSM的戏剧推广网站的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue、HTML 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是…

TikTok电商加快闭环,独享IP为运营带来哪些好处?

近日有消息称TikTok电商在加快闭环,以后商家可能无法继续在TikTok上为其他电商平台或独立站引流了。如今“TikTok Shop Shopping Center”平台正在构建,将各种购物渠道整合为一体,这可能是一种趋势,意味着TikTok逐渐从社交应用转型…

web前端第二次

第一题&#xff1a; <!DOCTYPE html> <html> <head><title>计算奇数和</title> </head> <body><label for"input">请输入一个正整数&#xff1a;</label><input type"number" id"input&qu…

Temu活动库存怎么设置?Temu活动报名后无库存怎么办?站斧浏览器

Temu活动库存怎么设置&#xff1f; 了解平台规则&#xff1a;在设置库存之前&#xff0c;详细了解Temu平台的库存管理规则和最佳实践。 设定合理库存量&#xff1a;根据商品的销售历史、市场需求和生产能力&#xff0c;设定合理的库存量。 定期检查与调整&#xff1a;库存设…

供应链管理是什么?专业就业前景如何?

什么是供应链管理 供应链&#xff08;Supply Chain&#xff09;&#xff0c;也被称为价值链或需求链&#xff08;Demand Chain&#xff09;&#xff0c;包括顾客、供应商、过程、产品以及对产品和服务有影响的各种资源。供应链强调的是公司之间的过程与关系。 《中华人民共和国…

浏览器网页内嵌Qt-C++音视频播放器的实现,支持软硬解码,支持音频,支持录像截图,支持多路播放等,提供源码工程下载

一.前言 在浏览器中实现播放RTSP实时视频流&#xff0c;⼤体上有如下⼏个⽅案&#xff1a; ⽅案一&#xff1a;浏览器插件⽅案 ActiveX、NPAPI、PPAPI ActiveX插件适用于IE浏览器&#xff0c;NPAPI与PPAPI插件适用于谷歌浏览器&#xff0c;不过这些插件都已经不被浏览器所支持…

算法总结——单调栈

纵有疾风起&#xff0c;人生不言弃。本文篇幅较长&#xff0c;如有错误请不吝赐教&#xff0c;感谢支持。 文章目录 一、单调栈的定义二、单调栈的应用&#xff1a;寻找左边第一个比它小的数寻找左边第一个比它小的数的下标寻找右边第一个小于它的数寻找右边第一个小于它的数的…

HCIP -- 重发布实验

要求&#xff1a; 实现&#xff1a; [rl]interface LoopBack 0 [rl-LoopBack0]ip ad [rl-LoopBack0]ip address 1.1.1.1 32 [rl-LoopBack0]q [rl]int [rl]interface go/0/0 [rl-GigabitEthernet0/0/0]ip add [rl-GigabitEthernet0/0/0]ip address 12.1.1.1 24on the interface…

第二篇:新建node项目并运行

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 安装 Node.js&#xff1a;首先&#xff0c;确保你的…

一篇文章带你了解接口测试(总结)

接口测试是软件测试中的一块重要部分&#xff0c;简言之&#xff0c;接口测试是指验证软件系统中各个模块间接口处的交互是否正确。 接口是软件组件之间交互的协议&#xff0c;允许不同的软件系统或模块通过明确定义的方法通信和交换数据。 一. 接口测试的重要性 在微服务架…

Agent检索增强生成

检索增强生成(RAG)设计模式通常用于在特定数据域中开发大语言模型(LLM)应用。然而&#xff0c;RAG的过往的研究重点主要在于提高检索工具的效率&#xff0c;例如嵌入搜索、混合搜索和微调嵌入&#xff0c;而忽视了智能搜索。本文介绍了一种受人类研究方法启发的新方法&#xff…

WordPress企业模板

首页大图wordpress外贸企业模板 橙色的wordpress企业模板 演示 https://www.zhanyes.com/waimao/6250.html

PDF有编辑密码怎么办

目录 注意&#xff1a; windows方法&#xff1a; 1 python 下载 2 打开命令行 3 安装 pikepdf 4 编写python脚本 5 使用py脚本 6解密完成 Linux方法&#xff1a; 注意&#xff1a; 此方法可以用于破解PDF的编辑密码&#xff0c;而不是PDF的打开密码 当遇到类似如下问…

SSC | Blue Prism报告:2024年智能自动化(IA)7大趋势预测

近日&#xff0c;RPA行业领导者SS&C | Blue Prism发布《2024智能自动化&#xff08;IA&#xff09;趋势与预测》报告。报告中提到&#xff0c;智能自动化&#xff08;IA&#xff09;与流程管理的有效融合&#xff0c;是实现数字化转型成功的核心。采用业务流程管理&#xf…

工业物联网的关键技术——青创智通工业物联网

1. 传感器技术&#xff1a;传感器是实现工业物联网感知层的重要技术之一&#xff0c;能够将物理量、化学量、生物量转化为可处理的数字信号&#xff0c;从而实现对物体状态的实时监测和自动控制。传感器技术是工业物联网应用中的关键核心技术之一&#xff0c;其性能和精度直接影…

Linux--部署 Tomcat 及其负载均衡

1.案例前置知识点 1&#xff09;Tomcat简介 名称由来&#xff1a;Tomcat最初是由 Sun的软件构架师詹姆斯邓肯戴维森开发的。后来他帮助将其变 为开源项目&#xff0c;并由Sun贡献给Apache软件基金会。由于大部分开源项目OReilly都会出一本相关的 书&#xff0c;并且将其封面设…

走迷宫之推箱子

前言&#xff1a; 在上一篇文章当中我介绍了一个走迷宫的写法&#xff0c;但是那个迷宫没什么可玩性和趣味性&#xff0c;所以我打算在迷宫的基础上加上一个推箱子&#xff0c;使之有更好的操作空间&#xff0c;从而增强了游戏的可玩性和趣味性。 1. 打印菜单 void menu() {…

python绘制热力图-数据处理-VOC数据类别标签分布及数量统计(-代码)

Python是一种功能强大的编程语言&#xff0c;它提供了许多库和工具&#xff0c;用于处理和可视化数据。在本文中&#xff0c;我们将介绍使用Python绘制热力图&#xff0c;并对VOC数据集中的类别标签进行分布及数量统计。 首先&#xff0c;我们需要导入所需的库。使用numpy库来…

【Java】后端开发语言Java和C#,两者对比注解和属性的区别以及作用

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是《Java》序列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和掌握…