Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 使用open mp时减慢其他部件的速度_Visual Studio 2012_Parallel Processing_Openmp - Fatal编程技术网

Visual studio 2012 使用open mp时减慢其他部件的速度

Visual studio 2012 使用open mp时减慢其他部件的速度,visual-studio-2012,parallel-processing,openmp,Visual Studio 2012,Parallel Processing,Openmp,我正在visual studio 2012中使用OpenMP实现简单的“for子句”。 此实现文件是由nvcc编译的.cu文件。 使用omp时,“for子句”变快,但其他部分变慢。 虽然浏览了很多相关的问题,但我还是找不到答案。 代码如下 void Test() { unsigned char* pbDest = (unsigned char*)malloc(1000000); unsigned char* pbSrc = (unsigned char*)malloc(3000000); #pr

我正在visual studio 2012中使用OpenMP实现简单的“for子句”。 此实现文件是由nvcc编译的.cu文件。 使用omp时,“for子句”变快,但其他部分变慢。 虽然浏览了很多相关的问题,但我还是找不到答案。 代码如下

void Test()
{
unsigned char* pbDest = (unsigned char*)malloc(1000000);
unsigned char* pbSrc = (unsigned char*)malloc(3000000);
#pragma omp parallel for shared(pbDest, pbSrc)
    for (int i = 0; i < 1000000; i ++)
    {
        pbDest[i] = (unsigned char)((299 * pbSrc[3 * i] + 587 * pbSrc[3 * i + 1] + 114 * pbSrc[3 * i + 2]) / 1000);
    }
...//other part
free(pbDest);
free(pbSrc);
}
void测试()
{
无符号字符*pbDest=(无符号字符*)malloc(1000000);
无符号字符*pbSrc=(无符号字符*)malloc(3000000);
#用于共享的pragma omp并行(pbDest、pbSrc)
对于(int i=0;i<1000000;i++)
{
pbDest[i]=(无符号字符)((299*pbSrc[3*i]+587*pbSrc[3*i+1]+114*pbSrc[3*i+2])/1000);
}
…//其他部分
免费(pbDest);
免费(pbSrc);
}
此“测试”功能在没有omp的情况下以100ms执行,但有了它,它以120ms执行。 因此,我对使用omp的for子句表示怀疑,但在使用omp时,从50ms到20ms,它得到了正确的优化 问题是什么。
如果您能帮助我,我将不胜感激。

启用OpenMP可能会抑制某些优化。如果我没记错的话,前段时间也有类似的问题,但我似乎找不到。我同意@HristoIliev。如果您真的想知道,您必须查看编译器生成的汇编代码。我同意上述观点,如果您需要更具体的帮助,您可能还需要包括`//other part'。other part与for子句没有任何关系。他们是独立的,更进一步说,在这里发帖是很重要的。