小编stu*_*hlo的帖子

Linux服务器上运行的CUDA程序的远程调试和分析

这是我的场景。我在 Windows 机器上编写 CUDA 应用程序。我使用 putty 在远程 Linux (Debian) 服务器上编译并运行这个应用程序(没有图形输出)。

我想问调试和分析我的应用程序的最佳方法是什么。我读到了一些有关 Nvidia 产品 Parallel Nsight 和 Parallel Nsight Monitor 的内容。这是(唯一的)方法吗?

debugging profiling cuda nsight

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

CUDA中指向共享内存的本地指针

如何让线程块中的每个线程都有自己的共享内存指针?我找到了一些此类指针声明的示例:

int __shared__ *p;
__shared__ int array[256];

p = &array[threadId];
Run Code Online (Sandbox Code Playgroud)

这是正确的还是有其他方法?

cuda

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

考虑模板参数改变if语句条件

我有一个带模板参数的全局内核函数:

template<int ARG> __global__ void kernel(array[]) {
    int threadID = blockDim.x*blockIdx.x + threadIdx.x;
    if(...) {...}
}
Run Code Online (Sandbox Code Playgroud)

函数的行为和特殊的if语句条件在考虑模板参数时略有不同,但是主体保持不变.让我们说:
ARG == 0if语句如下:if(expr1){body}
ARG == 1if语句如下:if(expr2){body}
ARG == 2if语句如下:if(expr1 && expr2){body}

我的问题是提供这种方法的最佳方式(在可读性和性能方面)是什么?

编辑: 表达式expr1和函数expr2调用__device__ boolean,例如fnc1(array[threadID])fnc2(array[threadID]).

c++ templates cuda

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

标签 统计

cuda ×3

c++ ×1

debugging ×1

nsight ×1

profiling ×1

templates ×1