GPU编程(基于Python和CUDA)(二)——显示GPU信息

系列文章目录

GPU编程(基于Python和CUDA)(一)——零基础安装pycuda
GPU编程(基于Python和CUDA)(二)——显示GPU信息
GPU编程(基于Python和CUDA)(三)——逐元素运算核(ElementwiseKernel)
GPU编程(基于Python和CUDA)(四)——Mandelbort集


显示GPU信息

  • 系列文章目录
  • 前言
  • 通过CUDA查看GPU信息
  • 使用pycuda查看GPU信息


前言

在成功安装pycuda后我们可以通过显示GPU信息验证是否正确安装CUDA和pycuda以及GPU是否可以使用。

通过CUDA查看GPU信息

cuda中自带查看GPU信息的功能,首先我们打开CUDA目录,笔者的目录如下,可以按照自己的目录进行查找

D:\NVIDIA GPU Computing Toolkit\extras\demo_suite

我们打开cmd窗口切换到demo_suite目录

然后输入并执行:deviceQuery

GPU编程(基于Python和CUDA)(二)——显示GPU信息_第1张图片
如果显示如图所示,证明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编程(基于Python和CUDA)(二)——显示GPU信息_第2张图片
代码的作用是首先获取GPU的数量并根据索引获得gpu,然后通过上表的信息获取各种GPU信息

你可能感兴趣的:(python,GPU编程,CUDA编程)