小编Tri*_*leS的帖子

Nsight跳过(忽略)VS10 Cuda中的断点效果很好,nsight始终跳过多个断点

我使用的是nsight 2.2,Toolkit 4.2,最新的nvidia驱动程序,我的计算机中使用的是夫妇gpu。构建自定义4.2。我在CUDA的项目属性上设置了“ generate GPU ouput”​​(生成GPU输出),nsight监视器处于打开状态(一切看起来都很不错)。

我在全局内核函数上设置了几个断点。nsight在函数的声明处停止,但是跳过了几个断点。就像nsight决定要达到断点还是跳过断点一样。有趣的是nsight在for循环处停止,但在简单的赋值操作上不会停止。

另一个问题是我无法设置关注点或将变量添加到监视列表,在这种情况下(请参阅所附的屏幕截图),我无法解析变量“ value”的值:“ posss”或“ testDetctoinRate1” 。另一方面,共享内存或块内存将自动插入本地列表。

这是调试之前内核的屏幕截图

这是调试期间的屏幕截图

我通过以下调用唤起我的内核函数:

checkCUDA<<<1, 32>>>(sumMat->rows,sumMat->cols , (UINT *)pGPUsumMat); 
cudaError = cudaGetLastError();
if(cudaError != cudaSuccess)
{
    printf("CUDA error: %s\n", cudaGetErrorString(cudaError));
    exit(-1);
}
Run Code Online (Sandbox Code Playgroud)

内核调用可以正常工作。

是否可以选择强制nsight在所有断点处停止?如何将线程的寄存器添加到监视列表?

任何帮助将不胜感激,我可以按需发布代码

干杯


最初,我的调试命令行如下:

运行时API(NVCC编译类型是混合对象或.c文件)

设置CUDAFE_FLAGS =-sdk_dir“ c:\ Program Files \ Microsoft SDKs \ Windows \ v7.0A \”“ C:\ Program Files \ NVIDIA GPU计算工具包\ CUDA \ v4.2 \ bin \ nvcc.exe”-使用-local-env --cl-version 2010 -ccbin“ C:\ Program Files \ Microsoft Visual Studio 10.0 \ VC \ bin” …

cuda gpu gpgpu gpu-programming nsight

5
推荐指数
1
解决办法
4116
查看次数

是否可以在 opencv FileStorage 中使用字符串作为名称

我想使用 opencv FileStorage 对象编写一个 XML 文件。

我看到的大多数示例的工作原理如下

FileStorage fs("d:\\1.xml" , FileStorage::WRITE); 
fs << "one" << 1; 
Run Code Online (Sandbox Code Playgroud)

我想编写一个带有修改后的名称变量的部分,这意味着不必在编译时插入文本。我寻找这样的东西:

 string st = "1"; 
 fs << st.c_str() << 1; 
Run Code Online (Sandbox Code Playgroud)

但是我不断收到运行时错误。它拒绝工作,我尝试过使用 opencv 字符串类型、stl 字符串类型、char*,但仍然无法使其工作。

c++ opencv

5
推荐指数
1
解决办法
756
查看次数

针对不同CUDA版本的不同构建规则?

我想在我的cuda代码中指定我是使用CUDA构建规则版本4.2还是使用CUDA构建规则版本5进行编译.

有没有用于此类提议的宏?

注意:我知道可以选择指定当前编译过程是否支持某种体系结构,例如 __CUDA_ARCH__

我正在为cuda构建规则版本寻找类似的宏

非常感谢帮助

cuda nvidia

2
推荐指数
1
解决办法
334
查看次数

特斯拉k20m与Direct3D 11的互操作性

我想知道我是否可以使用Nvidia Tesla K20和Direct3D 11?

我想使用Direct3D渲染图像,然后使用CUDA处理渲染的图像,[我知道如何计算CUDA的互操作性].

特斯拉k20没有显示适配器(物理远程适配器)

我设法使用特斯拉C2075,但是使用K20我无法接收设备适配器(EnumAdapters命令).

是否可以使用特斯拉K20和Direct3D?

坦率地说,这段代码是用记事本写的

谢谢

  IDXGIFactory* factory = 0 ; 
  IDXGIAdapter* adapter = 0 ; 
  int dev = 0;  

  CreateDXGIFactory( __uuidof(IDXGIFactory) , (void**)&factory); 
  for (unsigned int i = 0 ; !adapter ; ++i ) 
  {
         if ( FAILED( factory->EnumAdapters (i , &adapter )))
                   break; 
         if ( cudaD3D11GetDevice(&dev , adapter) == cudaSuccess )
                   break; 
         adapter->Release()
  }
Run Code Online (Sandbox Code Playgroud)

cuda direct3d tesla

2
推荐指数
1
解决办法
322
查看次数

MATLAB ::在MATLAB上绘制图像上的数字(矩阵)

我正在使用matlab来对图像进行修改.我在Matlab上加载了一个图像.(图像可能具有不同的分辨率)将图像转换为灰度,然后将图像的矩阵转换为双倍.

我在图像上绘制了网格线(我已经发布了代码,如何在堆栈上的某个地方执行此操作).

我的问题是,由于在X轴和Y轴上对图像进行束缚,我可能在1000个方格上.

我想对该图像中的方块进行编号.

有没有在Matlab上绘制数字的选项?我很乐意收到任何有关这方面的信息(除了点击猴子并在0到1000上写油漆哈哈......).

干杯S.

matlab photo image photolibrary matlab-figure

0
推荐指数
1
解决办法
9256
查看次数

CUDA:如何将多个重复的参数传递给CUDA内核

我正在寻找一种在CUDA内核中传递多个重复参数的优雅方法,

众所周知,每个内核参数都位于每个CUDA线程的堆栈中,因此,内核传递给每个线程的参数之间可能存在重复,每个线程都位于每个堆栈上.

为了最大限度地减少传递的重复参数的数量,我正在寻找一种优雅的方式.

为了解释我的担忧:假设我的代码如下:

   kernelFunction<<<gridSize,blockSize>>>(UINT imageWidth, UINT imageWidth, UINT imageStride, UINT numberOfElements,x,y,ect...)
Run Code Online (Sandbox Code Playgroud)

UINT imageWidth,UINT imageWidth,UINT imageStride,UINT numberOfElements参数位于每个线程库存中,

我正在寻找一个技巧来发送更少的参数并从其他来源访问数据.

我正在考虑使用常量内存,但由于常量内存位于全局,因此我将其删除.不用说内存位置应该很快.

任何帮助,将不胜感激.

performance cuda gpu gpgpu

-1
推荐指数
1
解决办法
719
查看次数