你如何在 jcuda 中获取 CUDA 核心数?



如何在 jcuda 中获取 CUDA 核心数?

我已经尝试过这个,但它没有产生正确的输出:

int cudacount = cudaDeviceAttr.cudaDevAttrMultiProcessorCount;

它返回 16,但我有 1 个带有 640 个核心的 Nvidia GPU。

上述属性的 JavaDoc 可在此处获得。 任何帮助将不胜感激。

似乎这个答案几乎完全符合您的要求。它是用 C 编写的,类型略有不同,所以这里有一个 Java 版本(几乎没有任何不同(:

int getSPCount()
{  
final int mp    = cudaDeviceAttr.cudaDevAttrMultiProcessorCount;
final int major = cudaDeviceAttr.cudaDevAttrComputeCapabilityMajor;
final int minor = cudaDeviceAttr.cudaDevAttrComputeCapabilityMinor;
switch (major)
{
case 2: // Fermi
return (minor == 1) ? mp * 48 : mp * 32;
case 3: // Kepler
return mp * 192;
case 5: // Maxwell
return mp * 128;
case 6: // Pascal
if (minor == 1) {
return mp * 128;
}
else if (minor == 0) {
return mp * 64;
}
}
throw new RuntimeException("Unknown device type");
}

像这样使用此函数:

int cudacount = getSPCount();

相关内容

  • 没有找到相关文章

最新更新