新智元报道
编辑:小咸鱼 好困
在GPU方面,英伟达一直是公认的王者,一直被模仿,从未被超越。
从去年下半年到今年8月,英伟达市值一路攀升,创下5080亿美元的记录,位居半导体行业第二位,而英伟达联合创始人、CEO兼总裁黄仁勋的身价也涨至190亿美元。
2020年11月,英伟达推出了A100 80GB新卡。
该芯片是基于英伟达的Ampere图形架构,旨在通过实现更好的实时数据分析,帮助企业和政府实验室更快地做出关键决策。
A100芯片为研究人员和工程师提供了更快的速度和更高的性能,用于人工智能和科学应用。
它提供超过每秒2 terabytes的内存带宽,这使得系统能够更快地将数据提供给GPU。
在人工智能领域,英伟达再次提高了门槛,几乎没有任何竞争对手能够跨越这一障碍。
今年4月的NVIDIA GTC 2021大会上,专攻GPU的英伟达推出了基于Arm架构的中央处理器(CPU)——Grace,用于大规模人工智能和高性能计算应用。
黄仁勋表示,「这是英伟达第一个数据中心CPU,专为大型应用建立」。
基于Grace的系统与NVIDIA GPU紧密结合,性能将比目前最先进的NVIDIA DGX系统(在x86 CPU上运行)高出10倍。
而AMD自从进军GPU领域后,一直想要挑战一下英伟达在GPU市场的领先地位。
同是去年11月,AMD曾经发布过专为机器学习和高性能计算优化的GPU架构:CDNA,采用7nm制程和第二代Infinity架构。
在当时,采用CDNA架构的AMD Instinct MI100就已经可以达到11.5TFlops的算力,也是当时第一个超过10TFlops(FP64)的数据中心GPU。
而在今年11月8号的发布会上,AMD推出全新的CDNA 2 GPU架构和MI200 Instinct图形处理器,要与英伟达的A100芯片一较高下。
除了采用了最新的第三代Infinity架构以外,MI200芯片也将包含多达580亿个晶体管,比Nvidia的A100中542亿个晶体管略多。
根据AMD发布的规格,MI200的时钟频率将高达1.7GHz,而MI100的时钟频率为1.5GHz。内存也升级为HBM2e,运行速度为3.2Gbps,结合双芯片GPU布局意味着MI200的整体带宽从1.2TBps增加到3.2TBps。
凭借更高的时钟、双GPU和加倍的FP64速率,MI200的FP64向量峰值速率为47.9TFLOPS。比Nvidia A100的FP64向量计算的速率快了4.9倍。
MI200还增加了FP64矩阵的支持,其峰值速率是向量单元速率的两倍:95.7TFLOPS。同样,较Nvidia A100的FP64向量性能19.5TFLOPS,也提升4.9倍。
看起来,两个4.9倍,AMD这是要把英伟达按在地上摩擦了?
Wait a minute!
纸面上的数据虽然好看,但是实际运行机器学习任务的时候可不一定能发挥全部功力。
由于AMD的MI200是通过自家的ROCm来支持TensorFlow、PyTorch和ONNX等机器学习框架,并没有CUDA,所以在可用性上,还需要留一个问号。
CUDA VS ROCm
在机器学习领域,有句话叫:「造轮子容易,建生态难」。
其实,换句话说就是,造出一辆能开的汽车,但是却不把马路修好,性能再好的车也没办法发挥出来。
AMD的GPU硬件近几年固然是进步神速,从数据上,也有了赶超英伟达的势头。
但AMD的GPU一直受人诟病的,并不是其性能,而是配套生态太过难用,连数据科学家和机器学习工程师都需要花不少时间去配置环境,新手小白更是难以上手。
就CUDA这一点,就是AMD的ROCm无法逾越的高峰。
最近,ROCm发布了最新的4.5版本,只是这issue的数量有点感人。
https://github.com/RadeonOpenCompute/ROCm
虽说ROCm一直在为Tensorflow和Pytorch这些主流框架进行适配。
Tensorflow-rocm可以直接通过pip安装,Pytorch的支持其实也一直在进行着,至少2020年就可以编译出支持ROCm的Pytorch-1.6.0和1.7.0版本。
其他框架比如mxnet其实也有过适配,可能因为资源不足,也停更好久了。
开源社区对于ROCm可以说是爱恨交加。
爱的是终于有开源的项目来挑战CUDA了,恨的是ROCm问题实在太多,不支持Windows,不支持MacOS,Linux目前官方也只是选择性地支持。
GPU型号更是支持得极其有限,正式支持的消费级GPU竟然只有好几年之前的Vega 64。
而RX500系列是可能支持,但不保证。
不过有网友表示,最新版本其实已经可以支持GFX1030架构了,也就是RX6800、6800XT、6900XT。
要问ROCm官方为什么不多适配一些显卡,原因可能有很多,测试经验不足,没有人力去测试太多显卡等等。
所以,这种情况就导致了过去十年AI的大部分进步都是使用CUDA库取得的。
而AMD也确实输在了没有CUDA的替代方案,甚至AMD都不支持自己的平台。
如果买英伟达的GPU,马上就可以编写和运行深度学习的代码,而如果用了AMD的GPU,代码能不能跑起来都是不确定的。
比如你有一张RX580,那么首先就需要了解哪些主板和CPU支持PCIe Atomics,如果不支持的话设备都无法正常加载。
然后是安装3.5.1版本的ROCm,没错,对GFX803架构的显卡来说,新版本的ROCm反而有bug没被解决。这会导致使用TenserFlow和PyTorch时卡死,或者loss变成NaN。
此外还要知道如何安装对应低版本的ROCm,或者自己知道怎么打补丁,然后自己编译。
AMD仍然有很长的路要走,尤其是在软件生态的适配和优化上,这注定是一个繁琐费时的工作,可能还需要几代才能稳定下来。
对此,有网友评价道:「英伟达是一家为其软件制造硬件的软件公司,而AMD是一家为其硬件制造一些软件的硬件公司。」
不过,既然AMD已经做出了非常出色的GPU硬件,还是应该期望ROCm能够越来越好。
毕竟,AMD如果能给出CUDA以外的另一个选择,对机器学习和深度学习的工作者和爱好者来说,绝对是一种福音。
参考资料:
本文引用了以下知乎网友的回答:
「三十一级火法」
https://zhuanlan.zhihu.com/p/80531243
「Huisheng Xu」
https://www.zhihu.com/question/447729368/answer/1765993650
https://www.zhihu.com/question/434685319/answer/1627612611