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.

[参考译文] Compiler/TMDSEVM6678:OMP in 6678

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/575749/compiler-tmdsevm6678-omp-in-6678

部件号:TMDSEVM6678

工具/软件:TI C/C++编译器

您好,

在我的项目中,我使用并行处理并与序列处理进行比较。

我的项目:

我需要处理一个矩阵(2K x 128) 128次,结果是128*(2K128)浮点运算。 ´m,我不缓冲此处理的总数,每个处理的每列只有一列(2K x 128),对每行执行总和。 我必须解决一个SQRT。

我在代码编写器中使用了所有优化功能,但序列处理比并行处理更快。 我试图在可能的时候消除所有的除法运算,通过乘法改变。

是否有人知道如何实现并行处理?

此致,

Nivaldo

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

    将其移至编译器论坛。

    此致,
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    计算中的瓶颈是什么?
    您是否还有任何分部?
    您的代码中是否有任何函数调用?
    循环是否通过管道获得了软件?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 

    我的瓶颈是使用SQRT。

    查找 我的代码

     for ( 列    )

        {  

        for (列    )

          {

          用于(行  )

             具有--> Z + sqrt ( x1^2+ x2^2)*var的方程式

          用于(行)

             vector_temp -> 按  列输入数据(2k x 128)

          函数-->内部有一个用于使用行长度的函数  

          用于(行)

             vector_buffer -> 从 函数中输入数据

          }

         对于(行)

           对于(列)

                final_vedctor = 方程式

       }

    我曾尝试在该代码中使用并行处理,但与没有任何并行指令相比,我要花费更多的时间。

    此致

    Nivaldo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对于C6x,sqrt()是函数调用。 函数调用可防止对C6x性能至关重要的软件流水线。

    您可能需要使用sqrt的替代定义。 有多种可能的定义,具体取决于您需要结果的准确性。 在极端情况下,您可以使用_rcp(_rsqrt(x))作为sqrt(x)的粗略估计值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好

    我尝试并测试了sqrt,rsqrt和rsqrtf,但第一个似乎更快。

    可能许多循环需要大量时间。