【问题标题】:OpenCL + Intel System Studio 2019 - GPU debugging problemOpenCL + Intel System Studio 2019 - GPU 调试问题
【发布时间】:2019-02-26 08:55:05
【问题描述】:

我是 OpenCL 编程的初学者。当我尝试在 Visual Studio 2017 中调试 OpenCL 内核时,会出现我的问题。调试器不会在内核代码中的断点处停止,但在 Main 函数中工作正常。我已经安装了 Intel System Studio 2019。

我以这种方式构建上下文:

cl_int platform_id = 0;
cl_int device_id = 0;
cl_context_properties contextProps[3] = {
    CL_CONTEXT_PLATFORM,
    (cl_context_properties)(platformList[platform_id])(),
    0
};

cl::Context context(CL_DEVICE_TYPE_GPU, contextProps, NULL, NULL, &errorState);

我尝试使用调试选项构建程序:

cl::Program program(context, source);
errorState = program.build(devices, "-g -s C:/OpenCL_Intel/OpenCL_Intel/multiply.cl");

之后我为内核函数设置参数并运行内核:

cl::Kernel kernel(program, "multiply", &errorState);
kernel.setArg(0, inA);
kernel.setArg(1, inB);
kernel.setArg(2, outCL);
kernel.setArg(3, arraySize);

cl::Event event;
errorState = queue.enqueueNDRangeKernel(kernel, cl::NullRange,
    cl::NDRange(arraySize), cl::NDRange(1), NULL, &event);
checkErr(errorState, "ComamndQueue::enqueueNDRangeKernel()");

event.wait();
errorState = queue.enqueueReadBuffer(outCL, CL_TRUE, 0, sizeof(int) * arraySize, out);
checkErr(errorState, "ComamndQueue::enqueueReadBuffer()");

My debugging options in my OpenCL project 我还在代码生成器中设置了一些选项:

  • API 调试器 -> 启用 OpenCL 工具 API 调试器 -> 是的
  • GPU 内核调试器 -> 启用调试 -> 是的

提前谢谢你

【问题讨论】:

    标签: debugging gpu opencl


    【解决方案1】:

    由于 Windows 限制,在 GPU 上调试 OpenCL 内核需要系统的特定主机/目标配置。您可以在英特尔网站上找到分步教程 - https://software.intel.com/en-us/openclsdk-devguide-debugging-opencl-kernels-on-gpu

    还请确保您拥有最新版本的 OpenCL Runtime(视频驱动程序)以及最新版本的 OpenCL SDK。

    【讨论】:

      猜你喜欢
      • 2018-07-21
      • 2015-04-16
      • 1970-01-01
      • 2014-08-03
      • 2013-08-18
      • 1970-01-01
      • 2019-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多