This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VM:如何计算 MMA 8TOPS 峰值性能?

Guru**** 2549370 points
Other Parts Discussed in Thread: TDA4VM

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1004103/tda4vm-how-mma-8-tops-peak-performance-is-computed

器件型号:TDA4VM

您好!

根据 您的文档、矩阵乘法加速器在1GHz 时可达到8TOPS (8b)。 我的问题是:卷积层是否有任何特定的配置来实现此性能? 您能否给出一个内核尺寸、特征图高度/宽度或输入/输出通道数的示例、以达到最高 MMA 性能?

让我解释一下我的想法、例如、我有一个用于512x256x64输入功能图的卷积层、以及一组用于生成输出功能图(512x256x64)的内核(3x64x64)。

当3x3卷积时、需要执行9个 OPS、因此我可以想象、多个输入/输出通道在一个周期内被处理(深度维度为并行化)、例如32个输入通道和32个输出通道、在本例中、一个周期中的3x3x32x32=9216 OPS 在1GHZ 时被执行、 因此、在我的示例中、我们可以达到9.216 TOPS。  

那么、让我们以3x3 conv 示例为例、您能解释一下如何在 MMA 上宣布8TOPS?

此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    抱歉,我想说3x3卷积=>9MACs=>18TOPS,其他计算也进行了相同的校正。

    无论这些计算结果是什么、我的问题仍然有效。 如何在 MMA 上发布8TOPS

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的 、您的理解是正确的、MMAv1 (作为 TDA4VM 器件的一部分)在  单周期内一起处理64个输出通道、并针对每个通道64个空间位置执行一次乘法。 因此、它意味 着每个周期64x64 = 4K MAC (或8K OPS)、在1GHz 工作频率下可提供8TOPS。

    让我先提供通用的响应、然后应用于您的示例

    --------------

    符号

    • NI:输入功能图中的通道数
    • 否:输出特性图中的通道数
    • WixHi:输入特征图的宽度 x 高度(空间尺寸)
    • WoxHo:输出特征图的宽度 x 高度 (空间尺寸)
    • FC x FR: 卷积内核宽度 x 高度

    性能:

    • MMA 以2矩阵(A 和 B)乘法的形式定义卷积、其中矩阵尺寸为
      • A 矩阵:[M x K];其中 M =否;K =(Ni*FR*FC)+ b;如果启用了 BIAS,则{b=1,否则为0}
      • B 矩阵:[K x N];其中 N = Wi * Hi
    • 为了充分利用 MMA、以下是指导原则
      • K 应为 MPS*的倍数
      • 如果 K 大于 MPS*,M 应是 MPS*的倍数

    *MPS 是矩阵面板大小,8位为64,16位为32,32位为16

    ----------

    在您的示例中、Ni = No = 64、Wi = WO = 256、Hi = Ho = 512、FR = FC = 3

    因此 ,它转换为[64 x (64*3*3)] x [(64*3*3) x (256*512)] 矩阵 乘法

    或 [64 x (64*9)] x [(64*9)x (64 * 2048)]   

    此示例 将充分利用 MMA 并产生8TOPS。 在每9个周期后、您将获得64x64 (通道 x 空间维度)块 输出。  由于 输出通道中的每个像素都是通过9 个 MAC 运算生成的,因此 总共在9个周期内完成64*64*9个 MAC,因此每个周期获得4K MAC

    此致、

    Pramod

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Pramod,这正是我要找的答案。

    也许还有几个问题可以完全理解 MMA 使用背后的限制因素。

    1. 根据您的解释、如果我理解正确、如果我的 Ni=No=32、则 MMA 将会被低估、因为8位时 MPS=64。 我是对的吗?  
    2. 在 TIDL 文档中、需要将 Relu、Bn 和 Pool 合并到 conv 中以获得更好的性能。 我知道、但网络中这些层的顺序是否有任何限制? 我的意思是、是否有一个配置可以在 Conv+Relu+Bn+Pool 或 Conv+Bn+Relu+Pool 之间进行选择、以获得更好的性能、或者两者都将获得最大性能?
    3. 关于 Depthwise conv、我们是否可以使用这种类型的 conv 达到8TOPS? 由于在通道和空间维度上获得了用于常规 conv 并行化的8 TOPS、因此使用了哪个维度来并行化逐行 conv (在本例中、通道 DIM 是一个)?

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Thomas:

    如果我们在私人 e2e 中讨论您的部分问题、您是否介意? 您 的公司有一个私人 e2e 帐户、我可以 在那里分享更多详细信息。

    主要是肯定的、但也有例外情况、比如 你的 Ni = 32、No = 32、FR= Fc = 1、它 仍将提供8 TOPS、 我需要解释一些需要 在公共论坛中避免的内部信息

    2.共用不会合并,我注意到这方面的文档不正确,我们会修复。 但是、只要在数学上可以合并、BN 和 Relu 就会合并。 例如 、Conv + Relu + Bn 在 b/w 中带来非线性、因此 Bn 不能 在 conv 中折叠、但 conv + Bn + Relu 可以作为单次操作合并

    3.我想再次在内部论坛上讨论这个问题

    谢谢、

    此致、

    Pramod

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Thomas:

    请告诉我该主题上是否有任何打开的内容、否则我们将关闭该主题。

    谢谢、

    此致、

    Pramod

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Pramod、

    感谢您的最后答案。 请告诉我、我们如何在内部论坛中讨论上述要点1)和3)?

    但是、是的、除了这个、你可以关闭这个线程。

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Thomas:

    您所在地区的 TI FAE (现场应用工程师)和您公司的 CPM (客户计划经理)将与 您联系、以帮助您使用私人 E2E。

    谢谢、

    此致、

    Pramod