小编GaT*_*aCa的帖子

'nvidia-smi -L'和cuDeviceGetName()之间ID的不一致

我正在将此命令运行到shell中并获取:

C:\Users\me>nvidia-smi -L    
GPU 0: Quadro K2000 (UUID: GPU-b1ac50d1-019c-58e1-3598-4877fddd3f17)    
GPU 1: Quadro 2000 (UUID: GPU-1f22a253-c329-dfb7-0db4-e005efb6a4c7)
Run Code Online (Sandbox Code Playgroud)

但是在我的代码中,当我运行cuDeviceGetName(..,ID),其中ID是nvidia-smi输出给出的ID时,设备已被反转:GPU 0变为Quadro 2000,GPU 1变为Quadro K2000.

这是预期的行为还是错误?有没有人知道一个解决方法,让nvidia-smi获得GPU的"真实"ID?我可以使用UUID来获取具有nvmlDeviceGetUUID()的正确设备,但是使用nvml API对于我正在尝试实现的内容似乎有点过于复杂.

这个问题讨论了CUDA如何在没有明确结论的情况下为设备分配ID.

我正在使用CUDA 6.5.

编辑:我看过nvidia-smi手册页(应该早点完成...).它指出:

"建议希望使用UUDI或PCI总线ID的用户,因为设备枚举排序不能保证一致"

仍在寻找一个kludge ...

cuda

10
推荐指数
2
解决办法
3748
查看次数

是否有可能在具有特定错误代码的线程退出时中断?

我想知道是否可以配置visual studio 2008调试器以在线程以精确错误代码(或至少任何非零值)退出时停止执行.我的应用程序使用了大量的线程,因此无法手动跟踪它们.

当程序中的任何线程命中"exit(X);"时,有没有办法告诉VS2008中断?(X与0不同)和显示源?

multithreading exit-code visual-studio-2008 visual-studio-debugging

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

从git gui命令行启动gitk

有没有办法从git gui命令行在 repo的主分支上启动gitk ?我看了一下doc,唯一可能的事情就是在repo上打开一个浏览器,而不是显示历史记录.

任何线索?谢谢

git gitk git-gui

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

为什么 OpenCL Nvidia 编译器 (nvcc) 不使用寄存器两次?

我正在使用 Nvidia 驱动程序做一个小型 OpenCL 基准测试,我的内核执行 1024 次保险丝乘加并将结果存储在一个数组中:

#define FLOPS_MACRO_1(x)    { (x) = (x) * 0.99f + 10.f; } // Multiply-add
#define FLOPS_MACRO_2(x)    { FLOPS_MACRO_1(x) FLOPS_MACRO_1(x) }
#define FLOPS_MACRO_4(x)    { FLOPS_MACRO_2(x) FLOPS_MACRO_2(x) }
#define FLOPS_MACRO_8(x)    { FLOPS_MACRO_4(x) FLOPS_MACRO_4(x) }
// more recursive macros ...
#define FLOPS_MACRO_1024(x) { FLOPS_MACRO_512(x) FLOPS_MACRO_512(x) }

__kernel void ocl_Kernel_FLOPS(int iNbElts, __global float *pf)
{
   for (unsigned i = get_global_id(0); i < iNbElts; i += get_global_size(0))  
   {
      float f = (float) i;
      FLOPS_MACRO_1024(f)
      pf[i] = f;
    }   
} …
Run Code Online (Sandbox Code Playgroud)

nvidia opencl nvcc ptx

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