最大并发内核数量&虚拟代码架构

时间:2016-12-11 22:03:30

标签: cuda compute-capability

所以我找到了这个wikipedia resource

  

每台设备的最大驻留网格数   (并发内核执行)

并且对于每个计算能力,它表示许多并发内核,我认为这是并发内核的最大数量。

现在我得到的是根据this nvidia CUDA resource提供的GTX 1060,其计算能力为6.1。从我到目前为止学到的关于CUDA的知识,您可以在NVCC编译时指定代码的虚拟计算能力,但标记为private static ArrayList<ArrayList<Integer>> unique(ArrayList<Integer> a, ArrayList<Integer> b) { ArrayList<ArrayList<Integer>> unique = new ArrayList<>(); unique.add(new ArrayList<>()); unique.add(new ArrayList<>()); for (Integer i: a) { if (!b.contains(i)) { unique.get(0).add(i); }else{ b.remove(i); } } for (Integer i: b) { if (!a.contains(i)) { unique.get(1).add(i); }else{ b.remove(i); } } return unique; }

那么我的GPU是硬件限制为32个并发内核还是能够带有-arch=compute_XX标志的128个?

1 个答案:

答案 0 :(得分:2)

根据NVIDIA CUDA programming guide计算能力中的表13,6.1设备最多有32个驻留网格= 32个并发内核。

即使您使用-arch=compute_60标志,您也将受限于32个并发内核的硬件限制。选择要编译的特定体系结构不允许超出机器的硬件限制。