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.

[参考译文] 66AK2H12:问题是、如果 TI 支持 LINALG 库中矩阵函数的2字节数据格式

Guru**** 2546020 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/564970/66ak2h12-issue-that-if-ti-support-2-bytes-data-format-on-matrix-function-in-linalg-lib

器件型号:66AK2H12

在 EVMK2H12上、我使用了 Processor-SDK 中的"cblas _sgemm"来计算大矩阵。 我知道该接口已根据8个 DSP 内核上的 OpenCL 进行了优化。 但根据性能要求、结果不能满足。

我已经检查了 M=N=K=1000的性能、它的性能与 TI 说的一样(www.ti.com/.../linear-algebra-libraries.page)

但是、当值较大时、例如 M=10、N=200、000、K=30、则为0.277s。 嗯、这种计算可能已经达到了所有 DSP 内核的性能限制。 因此、我认为如果输入数据格式为短整型或 fp16 (半精度浮点)、则可以改进、其长度为2字节、而不是像浮点那样为4字节。

有人知道 SDK 是否支持具有2字节数据格式的 sgemm? 通过搜索 SDK 手册和 cblas.h 我找不到任何东西 如果没有、TI 是否有任何关于此主题的计划?

BTW、我在基于 NVIDIA 平台的矩阵计算上使用了 fp16数据格式、这显著提高了性能(NV 支持 CUDA 库中的 fp16)

非常感谢您对此主题的任何帮助!

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

    您好:郝阳

    我已将此事转交给专家。 他们的反馈应发布在此处。

    BR

    Tsvetolin Shulev

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

    这里仍然没有反馈?

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

    这是一个非常有趣的问题。 我将回答 DSP 并谈谈 ARM。

    DSP 功能单元不支持硬件16位浮点。 因此、32位浮点的执行速度要比16位浮点快得多(也就是说、软件必须仿真16位浮点、而不是硬件支持)。

    您的帖子中不清楚您在运行大型矩阵运算时的观察结果。 您是否担心执行的时间或结果的准确性? 您的想法唯一可行的情况是瓶颈是 IO。 在这种情况下、可以想象得到16位浮点的数据、并在实际算术运算之前将其转换为32位(对于32位运算、速度要快得多)
    这对您有道理吗?

    ARM 的更多信息。 我知道 A15硬件中的浮点功能单元支持16位半精度浮点、但我不确定是否有 TI 软件来驱动任何16位功能。 我怀疑可以开发这样的代码。

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

    你(们)好、跑了

    感谢您对 FP16主题的解释。

    实际上、我所关心的是执行的时间、更喜欢减少大型矩阵运算的运行时间。 我更愿意考虑其他解决方案、因为 TI 不支持硬件16位浮点支持。

    但我认为 FP16硬件支持对于 TI 来说是一个值得考虑的未来方向、在某些情况下、当矩阵操作的精度不是很严格时、TI 可以提高应用性能。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我理解并欣赏您的发言。 感谢您的建议

    此致

    已运行