【问题标题】:Is CUDPP 2.0 debugging properly for a Nsight debug instance in CUDA 4.2, Nsight 2.2?CUDPP 2.0 是否为 CUDA 4.2、Nsight 2.2 中的 Nsight 调试实例正确调试?
【发布时间】:2012-08-11 03:22:18
【问题描述】:

我已将一个项目从 CUDA 4.0、Nsight 2.0 升级到 CUDA 4.2、Nsight 2.2,在 CUDA 4.2 上重新编译 CUDPP。升级后我可以正确使用断点和步进设备代码,但是当我的代码调用 cudppScan() 函数时,即使该函数正确执行操作并返回值的正确前缀和,Nsight 也会报告访问冲突。在没有 Nsight 的情况下运行的发布或调试代码不会出现问题。该问题可以通过以下sn-p重现。

#include <cassert>
#include <cudpp/cudpp.h>

//Cudpp testing
int main(int argc, char* argv[])
{
#define ARRAY_SIZE 32

unsigned int uiArraySize = sizeof(unsigned int)*ARRAY_SIZE;
unsigned int h_auiTest[ARRAY_SIZE];
for(int i = 0 ; i < ARRAY_SIZE ; ++i)
{
    h_auiTest[i] = 1;
}

unsigned int *d_auiTest;
GPUMALLOC((void**)&d_auiTest , uiArraySize);
TOGPU(d_auiTest , h_auiTest , uiArraySize);

unsigned int *d_auiOut;
GPUMALLOC((void**)&d_auiOut , uiArraySize);

CUDPPHandle cudppContext;
CUDPPHandle scanPlan;

CUDPP_SAFE_CALL(cudppCreate(&cudppContext));
CUDPPConfiguration scanConfig;
scanConfig.algorithm = CUDPP_SCAN;
scanConfig.datatype  = CUDPP_UINT;
scanConfig.op        = CUDPP_ADD;
scanConfig.options   = CUDPP_OPTION_EXCLUSIVE | CUDPP_OPTION_FORWARD;

cudppPlan(cudppContext , &scanPlan, scanConfig, ARRAY_SIZE , 1, 0);

cudppScan(scanPlan, d_auiOut, d_auiTest , ARRAY_SIZE);

FROMGPU(h_auiTest , d_auiOut , uiArraySize);

for(int i = 0 ; i < ARRAY_SIZE ; ++i)
{
    assert(h_auiTest[i] == i);
}
}

【问题讨论】:

    标签: cuda visual-studio-debugging


    【解决方案1】:

    我为这个问题得到的唯一解决方案是将我的项目降级到 CUDA 4.0。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-20
      • 2016-12-31
      • 2011-12-09
      • 2011-10-05
      • 2013-12-13
      • 2012-11-05
      • 1970-01-01
      • 2012-11-21
      相关资源
      最近更新 更多