level 8
米线山️之父
楼主
难怪华为鸿蒙5.0 6.0手机平板电脑两三端都能用上ai超分超帧,用npu都能做到
刷b乎看到的
RDNA3除了翻倍 fp32浮点计算,AMD 还将矩阵 (AI) 吞吐量提高了一倍,并且 AI 矩阵加速器共享许多shader执行资源。AMD不像NVIDIA,有单独tensor core单元,用于矩阵乘运算(家里毕竟不富裕啊,要节俭度日)。在RDNA3 上,我们看到的还是利用专有的WMMA指令,以vector方式完成矩阵运算。
矩阵运算,拆解到底层运算就是乘累加运算,针对fp16/bf16/int8,支持64个dot2操作,也就是wave64。dot2 其实可以看成是下面两个矩阵乘:
A[lbk]1x2[rbk] * B[lbk]2x1[rbk] = C[lbk]1x1[rbk]
也就是 1x2x1 = 2MAC / thread, 总共64个,也就是128个MAC/cycle,256 ops/cycle。
对比huawei Davinci Cube ai架构,可以用一条指令完成两个16*16矩阵的相乘运算(标记为16^3,也是Cube这一名称的来历),等同于单cycle进行了16^3=4096个MAC运算,8192 ops/cycle。
从资源使用上,AMD只使用了1/32,代价是为了得到两个16*16矩阵的执行结果,需要连续执行32个cycle。从能效上肯定是输的。当然从商业角度讲,RDNA3 作为主打游戏卡来说,对AI计算的支持已然是非常大的提升了,毕竟那些买了NV显卡的小伙伴来说是额外付了tensor core 的钱,可能有些人会反驳,NV DLSS技术可以充分发挥tensor core的价值,但我相信大多数游戏是用不到这个技术的。
华为达芬奇架构的框图。从大的结构上看,数据从L1预取到L0后,依次发射到Cube中进行2D matrix运算,结果写到buffer C中,可以通过Vector单元进行卷积和全连接之后的后处理运算(operation fusion,和TPU以及NVDLA的结构类似),然后写回到United Buffer中等待下一次调度。最下方是控制通路,指令经Icache取得后,译码分发到Scalar,Vector和MTE三个单元中进行对应的运算。整体数据通路和寒武纪的“DINANAO”是很类似的,通过显式的内存管理调度数据进入主运算cube或后处理单元,各buffer内部空间划分出ping-pong存储块,保证数据存取的连续性。下方的控制加上scalar和vector运算,相当于集成了一个通用CPU在其中,这样的话支持任何算法都没有问题了。scalar负责控制流和简单运算,vector来解决MAC矩阵所不擅长的pooling,activation等操作,这几部分相互配合补充,很好的实现对AI算法全场景的支持。可以明显看出,最核心的运算还是在cube,主要面向流行的深度学习算法,在其他AI算法上使用vector和scalar运算,算力比cube低不少,因此这类算法的性能是低于SIMT结构的GPU的。

















2025年07月03日 01点07分
1
刷b乎看到的
RDNA3除了翻倍 fp32浮点计算,AMD 还将矩阵 (AI) 吞吐量提高了一倍,并且 AI 矩阵加速器共享许多shader执行资源。AMD不像NVIDIA,有单独tensor core单元,用于矩阵乘运算(家里毕竟不富裕啊,要节俭度日)。在RDNA3 上,我们看到的还是利用专有的WMMA指令,以vector方式完成矩阵运算。
矩阵运算,拆解到底层运算就是乘累加运算,针对fp16/bf16/int8,支持64个dot2操作,也就是wave64。dot2 其实可以看成是下面两个矩阵乘:
A[lbk]1x2[rbk] * B[lbk]2x1[rbk] = C[lbk]1x1[rbk]
也就是 1x2x1 = 2MAC / thread, 总共64个,也就是128个MAC/cycle,256 ops/cycle。
对比huawei Davinci Cube ai架构,可以用一条指令完成两个16*16矩阵的相乘运算(标记为16^3,也是Cube这一名称的来历),等同于单cycle进行了16^3=4096个MAC运算,8192 ops/cycle。
从资源使用上,AMD只使用了1/32,代价是为了得到两个16*16矩阵的执行结果,需要连续执行32个cycle。从能效上肯定是输的。当然从商业角度讲,RDNA3 作为主打游戏卡来说,对AI计算的支持已然是非常大的提升了,毕竟那些买了NV显卡的小伙伴来说是额外付了tensor core 的钱,可能有些人会反驳,NV DLSS技术可以充分发挥tensor core的价值,但我相信大多数游戏是用不到这个技术的。
华为达芬奇架构的框图。从大的结构上看,数据从L1预取到L0后,依次发射到Cube中进行2D matrix运算,结果写到buffer C中,可以通过Vector单元进行卷积和全连接之后的后处理运算(operation fusion,和TPU以及NVDLA的结构类似),然后写回到United Buffer中等待下一次调度。最下方是控制通路,指令经Icache取得后,译码分发到Scalar,Vector和MTE三个单元中进行对应的运算。整体数据通路和寒武纪的“DINANAO”是很类似的,通过显式的内存管理调度数据进入主运算cube或后处理单元,各buffer内部空间划分出ping-pong存储块,保证数据存取的连续性。下方的控制加上scalar和vector运算,相当于集成了一个通用CPU在其中,这样的话支持任何算法都没有问题了。scalar负责控制流和简单运算,vector来解决MAC矩阵所不擅长的pooling,activation等操作,这几部分相互配合补充,很好的实现对AI算法全场景的支持。可以明显看出,最核心的运算还是在cube,主要面向流行的深度学习算法,在其他AI算法上使用vector和scalar运算,算力比cube低不少,因此这类算法的性能是低于SIMT结构的GPU的。
















