在YouTube上看到这样一个视频:

​https://www.youtube.com/watch?v=7EXDp6c9n-Q&lc=Ugydwl8gppB5FWE8Y5V4AaABAg.9fcFRMWuCpg9fcrI479gE2​


视频中说A100是ASIC,对此我表示不认同,理由就是A100虽然是加速卡但也是一种GPU,只不过不带视频输出功能而已,但其绝不是ASIC。在我回复后没多久就有人回复我,说GPU就是ASIC的一种,理由就是GPU是专门用来处理图形的。看了这回复我不得不说这是中国国内哪个大学培养的理工生,这基本概念的掌握能力真的是要人无语的很。由于被YouTube禁言无法回复,具体回复过程见下图:

 

说说中国高校理工科教育中的基础概念混乱问题——GPU是ASIC吗_移动端

 

 


被禁止回复的内容:

建议你好好研究清楚概念,ASIC是专用集成电路,GPU是通用集成电路,这两个本就不是一个概念。你可以说TPU是ASIC,哪怕广义上你把FPGA归为ASIC我都多少能接受,但是你不能说GPU是ASIC。什么一个芯片设计中部分电路是专门负责一个功能的,然后你就说这个芯片是ASIC,如果你要是这样认为的话,那么所有芯片的电路设计都可以归为ASIC,那其他概念也就没有必要存在了。概念没理解透就多读书,多查资料,严谨些。

 

 

 

==================================================

 

 

蚂蚁矿机、通讯设备中的滤波芯片、数模转换芯片等,这些都是ASIC,但是你要是说GPU是ASIC,那简直就是概念不清。ASIC主要的特点就是使用场景的单一性,但是你说GPU就是做图形和图像计算的,因此GPU也是一种ASIC,这就是没有弄清基本概念的本质。是否是专用电路,还是要看是否对特定功能的强化,ASIC就不用多说什么了,对于GPU来说虽然是做图形和图像计算的,但是其功能却是通用的,或者你也可以将图形和图像计算看做是复杂的通用计算而不是单一功能的计算。如果说这样还不理解就可以换个角度,指定的ASIC只能高效的跑一些固定类型的计算,甚至很多ASIC能且只能运行固定类型的计算,或者说ASIC具有一定的定制性,而GPU是可以高效运行所有矢量类型的计算的,这一点和CPU很像,所以说CPU和GPU都是通用芯片而不是ASIC。使用ASIC作为AI芯片可以对特定的AI应用大幅度提高性能,但是不要忘记即使是深度学习即AI的当下也不是所有的AI应用都是Deep Learning的,你可以这样认为,那就是TPU只能运行Deep Learning,而A100不仅可以运行Deep Learning还能运行其他类型的AI矢量计算。不论是设计架构、应用场景还是设计原理上GPU都不能归到ASIC一类中,正确的归法应该是和CPU一样归到通用芯片中。如果非要抬杠,说GPU芯片中的部分芯片电路也是针对单一类型计算的,如A100中的TensorRT部分,那么也只能说GPU中含有部分ASIC,这一点如同CPU一样,现在很多CPU芯片中也会集成定制部分如现在所谓的“带有AI功能的CPU”,但即使如此你也只能说这些CPU和GPU是带有特定电路设计的通用芯片,而不能说这些CPU和GPU是ASIC。

 

 

个人认为ASIC最大的优点就是性能的强大,最大的缺点就是难扩展和延伸,软硬件支撑困难。对于ASIC来说往往需要构成软硬件的闭环,而GPU虽然对特定任务的性能不如ASIC但是比较方便升级和后期维护,对于难以形成软硬件闭环的用户来说AI芯片选择时GPU要优于ASIC的,毕竟你不需要那么大的人力物力,软硬件平台可以直接拿来就用的,当然如果你是要进行移动端芯片选择的话你只能用ASIC,不然这个功耗和性能确实解决不太来。在现实中很多AI的ASIC往往也是针对固定网络类型的Deep Learning,而GPU就不用考虑这些,虽然GPU运行指定网络结构的Deep Learning的速度比不上指定的ASIC,但是GPU可以运行几乎所有的网络结构模型,只能说GPU和ASIC各有优劣吧。由于ASIC的专用定制性即使是现在的AI应用中其实使用也是很受限的,比如在TPU中你运行Deep Learning类型的矩阵运算性能可以得到保障,但是你也只能使用Tensorflow框架,并且你还得用原生的不能加入你自定义的TensorFlow操作(或许在得到Google官方支持下花费较多时间也能行)。由于现在的Deep Learning的盛行,很多的AI下的ASIC其实都是对特定矩阵运算的定制,功能还是比较单一的,不是所有的AI应用都是图像识别和语言识别的。即使在Deep Learning下,我认为ASIC对比GPU的优势还是在部署端尤其是移动端,因为大多数场景下只有到了部署的时候神经网络结构才是彻底定死的,这就如GPU计算中也往往会分训练卡和推理卡一样,同样一款硬件在不同场景下其性能的表现也是不同的。矢量计算包括矩阵运算,但不仅限于矩阵运算,Deep Learning下的ASIC所获得的超越GPU的性能可以说是通过牺牲通用性所换来的。

 


=================================================


上面说了这些,下面就说说下个话题——说说中国高校理工科教育中的基础概念混乱问题

其实要谈的就是我个人的一些感觉和观点。由于我经常参见985理工科高校博士的学术讨论会,所以对高校理工博士还是有些了解的。开的会开多了也就发现了一些问题,那就是好多985高校的理工科博士在讲自己的研究课题的时候经常性的将本课题下的基础概念讲错,可能我本人也是个比较较真的人,每每遇到这种情况总是忍不住的要公开吐槽一下,不过这种事情见多了后吐槽啥的也不重要了,重要的是我对此感觉蛮忧虑的。作为中国科研主力军,如果连基础概念都不理解又怎么能要人放心呢,诚然现在的科研犹如盖楼,你往往只需要知道你下一层是怎么盖的你就可以接着往上该,但是无法对整个情况有个大致了解,无法对基本原理和概念有个深入的理解,又怎么能要人放心这一层层垒上去的楼会坚固呢。

 

关于理工科学生是否应该有个牢固的基础我想人们是没有疑问和意义的,不过每每落实到实际情况上时人们又往往觉得这个事情无伤大雅、不太碍事,但是我个人的观点则是要想有更好的发展对基础技能培养(包括基础概念的掌握)都是极为有必要的。或许现在的人们对发展和收益很急迫,但是我觉得“磨刀不误砍柴工”还是有理的,如果基础技能都不过关即使盖好了高楼往往也是抵不过大些的地震的。

 

即使人们认为我说的高校生连本学科基础概念都掌握不清这件事并不会影响人们的学术发展,但这总是有碍观瞻吧,尤其是在公开场合开讨论会的时候,因为每每遇到这样的场景我都会觉得“天雷滚滚”,甚至有种愤然离场的冲动。不过说实在的,我发现慢慢的人们也发现不了这些基础概念是否被讲错,可能是“劣币驱逐良币”,慢慢的人们都变得搞不清楚真正的本学科基础概念应该是什么了。这件事从轻上说是不严谨,从重上说,我认为这就是“瞎搞”、“乱象”。这种问题已然不是个例而是成为了普遍现象,想想真的要人忧心。

 


=================================================