gpt4 book ai didi

c++ - SSE Intrinsics - 逻辑非优化

转载 作者:太空狗 更新时间:2023-10-29 23:13:45 27 4
gpt4 key购买 nike

我正在使用 SSE 对图像中的像素执行按位非运算。

我有一些问题:

  1. 可以使用 OpenMP 进一步优化吗?
  2. 我的算法中是否存在可以优化的瓶颈?

这是我的代码:

unsigned int iSSE2Size = (SrcImage1.GetHeight() * (SrcImage1.GetStepBytes() >> 1)) >> 3;
__m128i *m_ucSrcPtr = (__m128i *)SrcImage1.GetWordPtr();
__m128i *m_ucDstPtr = (__m128i *)DestImage.GetWordPtr();
__m128i iMaxVal = _mm_set1_epi16(0xFFFF);
unsigned short *srcRowPtr, *dstRowPtr;
while (iSSE2Size-- > 0)
{
*m_ucDstPtr = _mm_andnot_si128(*m_ucSrcPtr, iMaxVal );
m_ucSrcPtr++;
m_ucDstPtr++;
}

最佳答案

  1. 是的,您可以尝试循环展开并使用 OpenMP 来优化您的代码。

    #pragma omp parallel for
    for (;iSSE2Size-=2 > 0;)
    {
    *m_ucDstPtr = _mm_andnot_si128(*m_ucSrcPtr, iMaxVal );
    m_ucSrcPtr++;
    m_ucDstPtr++;

    *m_ucDstPtr = _mm_andnot_si128(*m_ucSrcPtr, iMaxVal );
    m_ucSrcPtr++;
    m_ucDstPtr++;
    }

    请注意,您可以多次展开以提高性能。

  2. 我在您提供的代码段中没有看到任何瓶颈。

关于c++ - SSE Intrinsics - 逻辑非优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37248000/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com