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

所以我转到此页面:https://documen.tician.de/pycuda/driver.html

我看到了:

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

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

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/

10-12 16:37