系列文章目录
GPU编程(基于Python和CUDA)(一)——零基础安装pycuda
GPU编程(基于Python和CUDA)(二)——显示GPU信息
GPU编程(基于Python和CUDA)(三)——逐元素运算核(ElementwiseKernel)
GPU编程(基于Python和CUDA)(四)——Mandelbort集
前言
在成功安装pycuda后我们可以通过显示GPU信息验证是否正确安装CUDA和pycuda以及GPU是否可以使用。
通过CUDA查看GPU信息
cuda中自带查看GPU信息的功能,首先我们打开CUDA目录,笔者的目录如下,可以按照自己的目录进行查找
D:\NVIDIA GPU Computing Toolkit\extras\demo_suite
我们打开cmd窗口切换到demo_suite目录
然后输入并执行:deviceQuery
如果显示如图所示,证明GPU可以正常使用
使用pycuda查看GPU信息
首先先放下完整代码
import pycuda.driver as drv
drv.init()
print("Detected {} CUDA Capable device(s)".format(drv.Device.count()))
for i in range(drv.Device.count()):
gpu_device = drv.Device(i)
print("Device {}: {}".format(i, gpu_device.name()))
compute_capability = float("%d.%d" % gpu_device.compute_capability())
print("\t Compute Capability: {}".format(compute_capability))
print("\t Total Memory: {} megabytes".format(gpu_device.total_memory() // (1024 ** 2)))
device_attributes_tuples = gpu_device.get_attributes().items()
device_attributes = {}
for k, v in device_attributes_tuples:
device_attributes[str(k)] = v
num_mp = device_attributes['MULTIPROCESSOR_COUNT']
print("\t ({}) Multiprocessors".format(num_mp))
device_attributes.pop('MULTIPROCESSOR_COUNT')
for k in device_attributes.keys():
print('\t {}: {}'.format(k, device_attributes[k]))
首先是初始化pycuda,在使用前都需要进行初始化,初始化可以使用driver.init()或者pycuda.autoinit()进行
在本代码中用到的函数功能如下表:
函数 | 功能 |
---|---|
drv.Device.count() | 可用GPU数量 |
Device(i) | 通过索引i获取GPU |
Device(i).name | 获取GPU名称 |
Device(i).compute_capability | 获取GPU算力 |
Device(i).total_memory | 获取总内存 |
Device(i).get_attributes | 获取其他信息 |
运行结果如下:
代码的作用是首先获取GPU的数量并根据索引获得gpu,然后通过上表的信息获取各种GPU信息