目前人工智能最流行的是大规模的并行GPU和CUDA框架。英伟达和AMD都做GPU超过十年了,但现在英伟达成为人工智能市场的主宰者,同时,就在几个月前,市场起来的时候AMD甚至没有一席之地。什么原因? 有人认为,AMD的GPU并没有什么问题。实际上,有时候他们比英伟达还要好。但是,事实上硬件仅仅是整个深度学习所需的一方面。你的软件需要跟你的硬件有效率的通信,全面利用所有的资料。生态系统、库和知识存储可造成很大差异,这正是英伟达占优势并超越AMD的方面。大多数神经网络代码利用了英伟达的CUDA库。AMD也做了OpenCL 生态系统面向开发者,但是它不能很好的支持cuDNN。 重要的是,英伟达专用GPGPU(general purpose GPUs)同时支持OpenCL和CUDA框架,而AMD显卡只支持OpenCL框架。这诱惑着开发者用更流行的CUDA开发程序。 此外,英伟达对开发者非常友好,它有大量知识储备,不仅仅提供统计帮助内容,还以开课和工作坊的形式帮助开发者重头学起。 但是,AMD已采取行动对付英伟达。跨平台支持会带来很明显的问题,如果开发者给CUDA开发软件,那它没必要在OpenCL上面跑。类似的,OpenCL的代码不会在CUDA上跑。所以开发者为更流行的CUDA框架开发软件,这限制了英伟达生态系统的深度学习软件。这是一个很大的问题,必须解决。这正是图像创业公司Otoy切入的地方。这家公司基本上就是对CUDA框架进行反向工程,使英伟达显卡上的程序可以兼容英特尔和AMD做的图像引擎。所以这对AMD是一个利好。 为了跟CUDA架构的交互可以更久一点,AMD年初重启了玻尔兹曼基金。但是关键难题是AMD现在可以把99.6%的CUDA代码移植到它的OpenCL框架。并且整个转换过程是自动的。 这基本意味着开发者不用辛苦地单独为AMD芯片写代码。他们只需要用自动转换工具,AMD系统会对他们开放的。同时,移植的应用立马提升了AMD对深度学习的吸引力。因此这对AMD和开发者是个双赢的事情。双方都从最小的人为干预中获益。 AMD解决了移植问题,现在CUDA应用可以在它自己的GPGPU上面跑。这就意味着投资深度学习的企业现在既可以用英伟达又可以用AMD的硬件,随着高性能的Vega显卡2017年发布,可能更多企业会在他们的深度学习机器上用AMD解决方案。 英伟达 PK 英特尔 英伟达 的 GPU主要是针对图像渲染的,这个跟深度学习有些类似,因此在市场没有更适合的产品出现时GPU成了开发者首选,但实际上,图像和深度学习还是完全不同的。英特尔的首款深度学习芯片的原型Nervana Engine,从基础架构设计上开始就是为深度学习设计的,从而实现了加速深度学习性能上的大幅提升。 根据新智元之前对英特尔所收购的深度学习芯片公司Nervana CEO Naveen Rao的采访,我们了解到,从架构上看英特尔的深度学习芯片比GPU加速深度学习的速度要快十倍。在讲到计算力的时候,比较的基本单元是乘积累加(MAC)运算次数,也就是每秒钟可以进行的MAC次数。英伟达最新的GPU采用17纳米工艺,能提供9到10 TP;英特尔用28纳米的芯片,可以达到超过50 TP的级别。 Naveen Rao告诉新智元,芯片面积有限,上面晶体管的数量是固定的,问题的根本是能够如何利用这些晶体管进行不同类型的计算。英特尔发明了一种新的指标(metrics),叫做“flexpoint”,介于浮点运算和定点运算之间。flexpoint 利用了神经网络的特点,不需要进行完整的浮点运算,这是一个基于张量的架构,不适合进行普通的乘法,但却能配合普通浮点运算芯片,让电路搭建得非常密集。在架构上,英特尔的芯片也与GPU和其他传统芯片不同,是没有缓存的。此外,atv,它的可扩展性非常强,总带宽(Aggregated IO)很多,速度每秒能够达到2.4TB。简单说,这样不会浪费资源去做与深度学习无关的计算,也不会去处理图像数据。 英特尔拥有很强的半导体工艺,同时拥有世界最高密度、最低能耗的工艺,再结合Nervana的架构,将实现其他人无法做到的事情。 (责任编辑:本港台直播) |