未设置签名信息
卡梅隆

简介:

粉丝

0

关注

2

什么是浮点计算?是新的技术么

2019-01-28 10:54 浏览 205 收藏 举报

分享你的真实观点和经验,通过汇编、洗稿的等方式拼凑的回答将会被折叠 完成
1个回答
  • 莫把无知当天真
    古木流风

    简介:莫把无知当天真

    粉丝

    0

    关注

    0

    通俗来说,就是一种可以通用表示所有数字的科学计数法。它的表示形式为0.*****×10^***,其中小数点前面是定点小数,后面则是一个定点整数(10的N次方)。比如传统的1024整数,浮点数就表示成0.1024×10^4。

    不难发现,浮点数可以表示出任意一个整数和小数,并且比普通格式的计数方式数位更长,因此计算难度和精度也更高。而利用浮点数进行的运算就是浮点运算。

    浮点运算到底有多重要呢?这么说吧,目前所有的计算机处理器都采用的是浮点运算,手机AI芯片也是以浮点运算能力为基础展开的。

    这种运算能力究竟蕴含着怎样的能量?又是如何取代定点计算成功上位的?

    天选之子:浮点计算发展史

    要搞清楚浮点运算的应用价值,有必要回溯一下,这种计算方式是怎么来的。

    最早将“浮点运算”作为计算机处理引擎概念,是莱昂纳多·托雷斯和奎韦多在1914年提出的。直到1938年,第一个使用二进制浮点数的计算机Z1才正式诞生。1942年,第一个带有浮点运算硬件单元的计算机Z4出现。到了1946年,贝尔实验室推出的Mark V,已经可以实现十进制浮点数运算。

    在接下来的数十年间,带有浮点运算硬件的“科学计算机”开始风靡。1985年,浮点运算的标准IEEE754问世。


    而1989年英特尔i 486的推出,正式奠定了浮点运算在计算机历史上的基础地位,开始作为标准功能被应用在个人计算机上,处理器的浮点运算能力也成为重要的芯片性能评价指标,代表着硬件制作技术的不断进步。

    进入AI时代,随着机器学习在电脑及手机等硬件端的普及,浮点运算更是有了新的用武之地。

    各种主打AI功能的手机芯片,比如苹果A11、华为麒麟系列、高通845、谷歌PVC等等,都是以浮点运算作为基本运算单元。预计未来,还有更多的AI功能会以浮点运算展开,直接影响手机AI的发展进程和感官体验。

    那么,为什么在处理AI任务时,浮点运算更加游刃有余呢?恐怕还要从它的特殊能力说起。

    焦不离孟:为什么移动AI离不开浮点运算?

    浮点运算之所以成为手机AI芯片的标配,与新运算需求和传统硬件之间的矛盾是分不开的。

    我们知道,AI任务大多是通过机器学习算法模仿神经网络来完成的,需要更大的算力和能效来支撑大型矩阵运算。


    而传统CPU的运算逻辑,是进行多组运算并统筹全局,一次带动不同部类的系统工作,类似于多面手。在面对神经网络这样庞大、单一、重复的高并发任务指令时,就有点难以负荷。因此,浮点运算能力更高的GPU就取代CPU,成为AI芯片的首选。


    其次,AI手机芯片不仅要更快地处理数据,保证使用中不卡顿,还要能够支撑大量多媒体技术应用,对手机画面进行更好的渲染和呈现,这种手机功能的升级需求,传统的定点运算力不从心,只能交给数位更长、精度更大的浮点运算。

    总之,更多的深度学习任务、更大的算力需求、更高的计算精度,加上硬件本身的迭代升级,共同推动浮点运算成为移动AI性能的关键指标。

    拉开差距:浮点运算的差异在哪里?

    尽管市面上的AI芯片都拥有浮点计算能力,但最终的呈现效果却各不相同。

    有的AI手机能够带你装X带你飞,有的则处理简单的识别任务都要等到天荒地老。它们之间的浮点运算能力又有哪些区别呢?

    简单来说,评估AI芯片运算能力的指标主要有三个:

    1.吞吐率(throughput)。处理AI任务需要支撑大规模的并行运算,而吞吐率就直接决定着芯片计算速度。这有点像水管,直径越大,可以同时对外流出的水就更多。

    2.FLOPS。即每秒所执行的浮点运算次数。为了衡量吞吐率,就可以折算到具体的浮点操作数量上来。原则上来说,FLOPS越高,单位时间内处理的数据量越大,表现出的图像数量峰值也就越高,从而可以显示出更加细腻的图像。


    3.精度。那么,是不是只要看FLOPS值就可以判断性能高低了呢?并不是。浮点数还会根据精度分为多种类型,以满足不同的计算需求,比如单精度、双精度、扩展双精度。

    精度会根据任务场景、成本控制、产品线定位等来设计和应用,不同维度上的比较往往失于片面。比如英伟达就在geforce产品线中屏蔽了大部分的双精度单元,却在tesla产品线中全部打开。

    总而言之,浮点运算性能对于3D图形处理和大规模并行任务的表现起到了至关重要的作用。

    但其对手机性能的影响大小,取决于硬件设计、处理效率、数据精度等要素的综合做功。

    从理论到应用:浮点运算能给用户带来什么?

    说了这么多技术上的东西,不难发现,浮点运算能力并不是只看数值就能够判断出来的。

    而对于绝大多数人来说,可能也根本不care复杂的技术概念和参数表。消费者能够感知到的功能和实际价值,才是真正的意义所在。

    那么落地到具体应用上,浮点运算究竟给端侧AI带来了哪些价值呢?主要体现在三个方面:

    首先是带来了全新的视觉体验升级。

    如今的手机新品发布会,要是不讲点机器视觉的应用,比如拍照识花、视频美颜、虚拟现实、人脸识别、游戏渲染等等,都不配被成为AI手机。而这些功能的实现,都离不开浮点运算保质保量的图像处理能力。


    另一个改变则是浮点运算对终端算力的加持,减少了AI任务对云计算的过度依赖。

    在端侧就能够完成一部分机器学习、神经网络方面的计算,一方面可以解决计算的延迟问题,让手机可以实时处理AI任务,运行更加流畅;另一方面,用户的信息无需全部上传到云端处理,安全性更有保障。

    而更大的价值在于,浮点运算能力的提升,还能够帮助手机解锁更多的AI想象力。

    浮点的计算速度本身就比定点运算要慢,如果能力欠佳,在面对神经网络和卷积运算的算力要求时,就会力不从心,不仅运算缓慢,还需要大量耗能。又慢又耗电,还要将各种各样的AI功能都加载到一部手机里,绝对是一场灾难。

    幸好,移动芯片浮点运算能力的不断提升,正在打破手机端的算力桎梏,比如新的TPU就可以在神经网络运算上达到高计算吞吐量,同时能耗和物理空间都很小。

    当运算能力不再是问题,移动端AI应用开发的活力也将被彻底释放,更多创意能够在手机端开花结果,可以被普通用户所感知到的AI功能自然也就越来越多。

    未来脑洞:浮点运算谱写的手机功能狂想曲

    这里不妨一起开一下脑洞,浮点运算能力的提升,有可能帮助哪些手机AI应用驶上快车道?

    目前看来,至少在以下三个方面存在无限可能:

    1.流数据处理。浮点运算能力直接影响处理器的多媒体、3D图形处理,从而改变大量多媒体技术应用的体验。

    比如实时大规模的数据运算能力,让人脸识别、人像分割、视频风格化、虚拟现实等技术在端侧进行,更高耦合度的有趣应用(比如annimoji、虚拟主播等)也从理论变为现实,作用于视频、直播、摄影等功能,创造出新的功能亮点。

    2.识别功能。手机AI功能的另一个特点,则是识别和决策能力,比如识别文字(翻译)、图片(摄影)、商品(购物)、情绪(交互)、场景(主动服务)等等。

    浮点运算能力的进一步提升,将让手机的智能化、人格化成为可能,从工具进化成真正的智慧伴侣。


    3.IoT。更进一步,越来越多的智能硬件进入AI交互模式,如果手机的计算传输效率被攻破,那么完全可以作为众多IoT设备的大脑中枢,让智能硬件交互围绕手机端展开。

    用手机操作和管理智能家电、无人汽车、体联网设备等,将为产业创造出新的价值点。

    总体而言,浮点计算的进一步发展,带给手机的核心改变在于,AI任务所需要的大规模并行运算将不再是问题。

    评论 0
    2019-01-28 10:57:38 点赞  1 举报  
    取消 评论