在 PyCuda 中获取设备属性(warp_size 等):不起作用

Sta*_*ucK 1 python cuda pycuda

我正在做一个 PyCuda 代码,我想获得图形卡的属性(例如扭曲的大小、每块的最大线程数等)。

所以我去了这个页面:https : //documen.tician.de/pycuda/driver.html

我看到了这个:

在此处输入图片说明

然后我在我的代码中写了以下内容:

import time
import numpy as np
from pycuda import driver, compiler, gpuarray, tools
import math

# -- initialize the device
import pycuda.autoinit

print(pycuda.driver.device_attribute.WARP_SIZE)
Run Code Online (Sandbox Code Playgroud)

但打印返回:WARP_SIZE

事实上,他返回一个包含“WARP_SIZE”的 str 而不是代表经线大小的整数。

我究竟做错了什么 ?

tal*_*ies 5

您打印的是需要传递给设备接口以检索该属性的枚举。你想要这样的东西:

import time
import numpy as np
from pycuda import driver, compiler, gpuarray, tools
import math


# -- initialize the device
import pycuda.autoinit

dev = pycuda.autoinit.device
print(dev.get_attribute(pycuda.driver.device_attribute.WARP_SIZE))
print(dev.get_attribute(pycuda.driver.device_attribute.MAX_BLOCK_DIM_X))
Run Code Online (Sandbox Code Playgroud)

这样做:

$ python device_attr.py 
32
1024
Run Code Online (Sandbox Code Playgroud)