简体   繁体   English

如何使用 Python 和 Numba 获取 GPU 中的 CUDA 内核数量?

[英]How can I get the number of CUDA cores in my GPU using Python and Numba?

我想知道如何使用 Python、Numba 和 cudatoolkit 获取 GPU 中的 CUDA 核心总数。

Most of what you need can be found by combining the information in this answer along with the information in this answer .大部分你所需要的可以通过在信息结合可以找到这个答案在信息沿着这个答案

We'll use the first answer to indicate how to get the device compute capability and also the number of streaming multiprocessors.我们将使用第一个答案来指示如何获得设备计算能力以及流式多处理器的数量。 We'll use the second answer (converted to python) to use the compute capability to get the "core" count per SM, then multiply that by the number of SMs.我们将使用第二个答案(转换为 python)来使用计算能力来获取每个 SM 的“核心”计数,然后将其乘以 SM 的数量。

Here is a full example:这是一个完整的例子:

$ cat t36.py
from numba import cuda


cc_cores_per_SM_dict = {
    (2,0) : 32,
    (2,1) : 48,
    (3,0) : 192,
    (3,5) : 192,
    (3,7) : 192,
    (5,0) : 128,
    (5,2) : 128,
    (6,0) : 64,
    (6,1) : 128,
    (7,0) : 64,
    (7,5) : 64,
    (8,0) : 64,
    (8,6) : 128
    }
# the above dictionary should result in a value of "None" if a cc match 
# is not found.  The dictionary needs to be extended as new devices become
# available, and currently does not account for all Jetson devices
device = cuda.get_current_device()
my_sms = getattr(device, 'MULTIPROCESSOR_COUNT')
my_cc = device.compute_capability
cores_per_sm = cc_cores_per_SM_dict.get(my_cc)
total_cores = cores_per_sm*my_sms
print("GPU compute capability: " , my_cc)
print("GPU total number of SMs: " , my_sms)
print("total cores: " , total_cores)

$ python t36.py
GPU compute capability:  (5, 2)
GPU total number of SMs:  8
total cores:  1024
$

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM