gpt4 book ai didi

visual-c++ - 为什么 Visual Studio 2012 Express 的自动并行化报告功能仅适用于 Win32?

转载 作者:行者123 更新时间:2023-12-04 05:00:17 25 4
gpt4 key购买 nike

我尝试使用 Microsoft Visual Studio 2012 Express 在 Win 32 位和 x64 位设置中自动并行化“for”循环。命令行选项设置为/O2/Qpar/Qpar-report:2 以启用优化、自动并行化以及成功和失败的“for”循环自动并行化的报告。通过此处使用的方法更改了 32 到 64 位设置:( http://msdn.microsoft.com/en-us/library/vstudio/9yb4317s.aspx )。我的计算机上正在运行 64 位版本的 Windows。我使用的示例代码来自这里:( http://msdn.microsoft.com/en-us/library/hh872235.aspx )。我运行的代码如下:

int A[1000];
void test()
{
___#pragma loop(hint_parallel(0))
___for (int i=0; i<1000; ++i)
___{
______A[i] = A[i] + 1;
___}

___for (int i=1000; i<2000; ++i)
___{
______A[i] = A[i] + 1;
___}
}

int main()
{
___test();
___return 0;
}

使用 Win32 构建,我产生了这个报告输出:
--- Analyzing function: void __cdecl test(void)
d:\myproject\mytest.cpp(4) : loop parallelized
d:\myproject\mytest.cpp(4) : loop not parallelized due to reason '1008'

使用 x64 构建,我没有产生任何关于“循环并行化”或“循环未并行化”的报告。

为什么没有报道?是不是因为我只有visual studio 2012 express,但我需要VS 2012 Professional?这是否发生在所有计算机或所有版本的 VS 2012 中?我该如何解决这个问题,以便在 64 位 Microsoft Visual Studios 项目中启用自动并行化报告 (/Qpar-report:2 )?

最佳答案

/Qpar-report 在零售版的 x64 编译模式下运行良好。 Express 不使用编译器的特殊构建。

一个可能的解释是您忘记为 x64 配置设置/Qpar-report 选项。这些设置按配置保存。右键单击您的项目,属性。选中对话框顶部的组合框。确保您选择了正确的配置和平台。

并确保为发布版本执行此操作,调试版本不会并行化这些循环。

关于visual-c++ - 为什么 Visual Studio 2012 Express 的自动并行化报告功能仅适用于 Win32?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16226530/

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