我已将调试器类型设置为GPU only
并在 8 行parallel_for_each
lambda 的每一行上设置断点,包括 lineparallel_for_each
语句,但它永远不会被命中。我在 Windows 8 Pro 上使用 Visual Studio 2012。
我需要采取什么步骤才能使断点工作?
我已将调试器类型设置为GPU only
并在 8 行parallel_for_each
lambda 的每一行上设置断点,包括 lineparallel_for_each
语句,但它永远不会被命中。我在 Windows 8 Pro 上使用 Visual Studio 2012。
我需要采取什么步骤才能使断点工作?
您的应用程序是否为 parallel_for_each 显式提供了加速器/加速器视图?如果是这样,您需要确保在调试时使用 REF 加速器,除非您的 GPU 驱动程序支持调试。
accelerator defaultAcc (accelerator::default_accelerator);
accelerator_view defaultView = defaultAcc.default_view;
#ifndef _DEBUG
std::vector<accelerator> allAccelerators = accelerator::get_all();
allAccelerators.erase(std::remove_if(allAccelerators.begin(), allAccelerators.end(),
[](const accelerator& acc){ return (acc.is_emulated) ||
(acc.device_path == accelerator::cpu_accelerator);} ),
allAccelerators.end());
if (allAccelerators.size() > 0)
defaultView = allAccelerators[0].default_view;
#endif