零刻吧 关注:11,503贴子:92,478
  • 5回复贴,共1

SER7 7840hs更新了BIOS,已经支持Ryzen AI,说一下结果

取消只看楼主收藏回复

我看了AMD官网上的文档,跑了github上的几个例子,简单说一下。
resnet50入门的那个例子,目前和CPU运行相比,基本上速度是一样的。但是用CPU跑,CPU占用率是65%,用IPU跑,CPU占用率大概1%,这基本证实IPU确实能用。
然后跑本地大模型,速度只有用CPU跑的一半。 估计是AMD/Xilinx软件开发人员的锅。
另外看了AMD官方文档,不准确的说,IPU大概可以看作某种二进制格式文件的执行器,就像CPU执行exe一样。AMD目前提供了两种二进制格式文件,他们叫做target,一个是1x4、一个是5x4。IPU执行前者时,可以提供2T的算力,支持5个程序同时利用IPU。执行后者时可以提供10T算力,只支持1个程序利用IPU。
网络模型本身编译时就需要指定target,运行时要保持和编译时target一致。根据github上别人反映和我本人的试验,5x4现在似乎不能用,还会导致崩溃死机,所以只有1x4能用。也期待别人的实验结果。
为什么没有比CPU快呢?我没有仔细调查,只是琢磨了一下。除了优化不到位,其实不是IPU慢,而是CPU快。onnx这类应该是为AVX512甚至VNNI优化了,在代码库里用AVX等关键字搜索一下,可以提供个大致的证据。
这样量化到8bit的网络,哪怕硬件按照256bit的AVX单元算,一个周期的操作大概是32倍,再加上8核,以4G频率计算,对于矩阵乘加运算,本身也能提供1T左右的算力。实际上AMD加入AVX512后,很多测试分数大幅提高,我这个估算很可能还保守了。另一方面,CPU上的计算本身延迟更低,也更容易优化。
这就是为什么我长期持支持AVX512的立场,自Intel消费级CPU不支持AVX512以后,再也不购买也不推荐Intel的CPU的原因。
回过头看IPU,可以做个简单结论:还是有用的,尤其是将来5x4的target能够启用、并优化得当的话。对普通人来讲,可以用作照片分类等日常任务,比如原来目录里排序,可以有日期什么,以后就可以用人脸分组等等。github一个demo就是干这个的。这时候用CPU做,就算算力够用,也会面临占用率过高、发热之类的问题,用IPU就好得多。
最后说一下零刻,还是给大家解决了问题,这样的售后目前看还是过关的。就我个人体验,并未比华硕等“大厂”反应更慢,应该给予肯定。


IP属地:北京1楼2023-11-20 20:32回复
    又试了一下,同时开六个进程跑resnet50(一个经典的AI图片分类神经网络),目前这个状态,IPU大概比CPU快一倍。


    IP属地:北京10楼2023-11-21 08:57
    收起回复
      写太多可能有些用户看不到重点,提出来单说一下。
      单进程可以跑到将近1.6T算力,四进程可以可以跑到将近6.4T算力,大概是官方标称的80%,是CPU满载的10倍。
      (如果我没算错的话,发现错误的朋友请指正)


      IP属地:北京21楼2023-11-21 18:54
      收起回复
        勘误:
        顶楼说的有一些错误。1x4的target,只能并行4个(顶楼记错了,写成了5个)。实际测试,超过4个后,算力不会增加。
        上面有个帖子误删了,懒得再写一遍了。总之上个帖子1.6Tops和四进程6.4Tops的算力,是用每层输入输出相等的卷积跑出来的,这样内存交换小、计算单元利用充分。早先AMD的resnet50例子规模太小,是没有和CPU拉开差距的根本原因。


        IP属地:北京22楼2023-11-21 19:40
        回复
          又用自己的例子试了5x4,和AMD文档说的不太一样,似乎允许多进程运行。
          用5x4,八进程跑78层conv2d,中间层进出channels都是256,卷积核5x5,padding 2,图像大小192x128,可以跑出大概8.36Tops的算力。大概还是官称算力的八成多,基本符合预期。作为对比,8核CPU跑是0.8Tops。
          (以上数据要基于我没犯错,因为只是简单的性能测试,目的是看能不能正常跑出官方数据,所以甚至没有验证计算结果的正确性。在此提示)
          调为5x4需要设置两条环境参数。
          set XLNX_VART_FIRMWARE=C:\RyzenAI\ryzen-ai-sw-0.9\voe-4.0-win_amd64\5x4.xclbin
          set XLNX_TARGET_NAME=AMD_AIE2_5x4_Overlay
          第一条告诉执行引擎去哪里找5x4的firmware,也就是执行什么。第二条告诉执行和编译引擎target是什么,好让他们针对5x4配置。社会来的话,第一条改为1x4,第二条等号后面为空(全删)即可。
          AMD的resnet的例子5x4我这里会坏,先是报错timeout再执行就会说什么too many links,无法装载固件。有编程经验的朋友可以试试。一个例子导致崩溃,我觉得不是AMD驱动有问题就是IPU本身或者那个5x4的firmware确实有一些漏洞,执行某些计算会把自己状态破坏掉。
          不过简单测试,这个IPU确实必须要开。10倍于CPU的算力,不占用CPU估计也不太发热,执行本地轻量级AI任务如照片分类、轻量级AI创作,以及工业化的、安防的边缘计算,象缺陷、人脸、特定物体的识别等等,确实挺合适的。以后规模还可能变大,和老黄形成类似目前独显vs集显的局面。


          IP属地:北京25楼2023-11-22 09:54
          收起回复
            一句话版:5x4模式用自制代码达成,可以跑到8T多ops,基本符合官宣的数据和预期,CPU能跑到0.8Tops。但没做计算正确性验证,仅供参考。


            IP属地:北京26楼2023-11-22 10:01
            收起回复