我正在做一个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)
但是打印返回:WARP_SIZE
实际上,他返回了一个包含“ WARP_SIZE”的字符串,而不是表示扭曲大小的整数。
我究竟做错了什么 ?
最佳答案
您要打印的是枚举,该枚举需要传递到设备接口以检索该属性。您想要这样的东西:
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))
这样做:
$ python device_attr.py
32
1024
关于python - 在PyCuda中获取设备属性(warp_size等):不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47811800/