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

news2024/11/19 16:26:40

系列文章目录

GPU编程(基于Python和CUDA)(一)——零基础安装pycuda
GPU编程(基于Python和CUDA)(二)——显示GPU信息


显示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可以正常使用

使用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信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/955669.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用openpyxl来创建一个月的日程表

首先你心里要有一张表的样子,openpyxl才能帮你创建出其余的29张。 import openpyxl from openpyxl.styles import Alignment, Font import calendar from datetime import datework_path rXX\YY\ZZ\日报-九月.xlsxtry:workbook openpyxl.load_workbook(work_path…

The Annotated Transformer(Attention Is All You Need)

"Attention is All You Need"[1] 一文中提出的Transformer网络结构最近引起了很多人的关注。Transformer不仅能够明显地提升翻译质量,还为许多NLP任务提供了新的结构。虽然原文写得很清楚,但实际上大家普遍反映很难正确地实现。 所以我们为此…

不使用VH6501设备,通过VN1630等普通设备使用canConfigureBusOff函数进行busoff干扰测试

** 特别注意一下,使用这个函数需要你的vector驱动在9.6以上以及支持 ISO CAN FD. ** 函数canConfigureBusOff 可以通过脚本的形式产生bus off,而VH6501可以通过干扰bit位来产生bus off(使用CANoe Demo - CANDisturbanceMain进行Bus Off测试)。 对于函数canConfigureBusOf…

Cypress web自动化windows环境npm安装Cypress

前言 web技术已经进化了,web的测试技术最终还是跟上了脚步,新一代的web自动化技术出现了? Cypress可以对在浏览器中运行的任何东西进行快速、简单和可靠的测试。 官方地址https://www.cypress.io/,详细的文档介绍https://docs.cypress.io/g…

openGauss学习笔记-56 openGauss 高级特性-DCF

文章目录 openGauss学习笔记-56 openGauss 高级特性-DCF56.1 架构介绍56.2 功能介绍56.3 使用示例 openGauss学习笔记-56 openGauss 高级特性-DCF DCF全称是Distributed Consensus Framework,即分布式一致性共识框架。DCF实现了Paxos、Raft等解决分布式一致性问题典…

[SpringBoot3]远程访问@HttpExchange

六、远程访问HttpExchange[SpringBoot3] 远程访问是开发的常用技术,一个应用能够访问其他应用的功能。SpringBoot提供了多种远程访问的技术。基于HTTP协议的远程访问是最广泛的。SpringBoot中定义接口提供HTTP服务。生成的代理对象实现此接口,代理对象实…

C语言入门篇(九)

前言   本篇分享的是部分操作符的概念与用法,从经典例题入手,带你快速了解和掌握。   收录专栏:浅谈C语言 操作符详解下 10. 逗号表达式11. 下标引用、函数调用和结构成员12. 表达式求值12.1 隐士类型转换12.2 算术转换12.3 操作符的属性…

海面漂浮物垃圾识别检测算法

海面漂浮物垃圾识别检测算法通过yolo系列网络框架模型算法,海面漂浮物垃圾识别检测算法一旦识别到海面的漂浮物垃圾,海面漂浮物垃圾识别检测算法立即发出预警信号。目标检测架构分为两种,一种是two-stage,一种是one-stage&#xf…

MFC -- Date Time Picker 控件使用

当前环境:VS2015 Windows 10 //(一)使用普通函数, 获取当前时间CString strCurrentTime; COleDateTime m_time COleDateTime::GetCurrentTime(); strCurrentTime m_time.Format(_T("%Y-%m-%d %H:%M:%S")); SetDlgIt…

stm32之IIC协议

主要通过两个层面来讲:物理层、协议层。 IIC是一个同步半双工串行总线协议。 一、物理层(通信模型) 1、最早是飞利浦公司开发的这个协议,最早应用到其产品上去。 2、两线制(两根信号线) 其中SCL为时钟…

windows下安装mysql

1.下载mysql压缩包 官网下载 我这里选择了最新的版本下载 百度网盘下载,提取码:fu48 2.解压 将下载的压缩文件解压到D:\data\mysql,可自定义位置。 3.配置环境变量 【我的电脑】右键选择【属性】,然后按下图操作,配…

Swing程序设计(2)JFrame窗体

文章目录 前言一、JFrame窗体的介绍 1.创建JFrame窗体2.窗体容器中添加或移除组件二、JFrame窗体的使用 1.JFrame类的常用构造方法2.实例相关语法总结 前言 该文将较为详细地介绍了Swing组件中的JFrame窗体。JFrame窗体是大部分Swing组件的一个载体,这些组件都要在这…

C语言练习7(巩固提升)

C语言练习7 编程题 前言 “芳林新叶催陈叶,流水前波让后波。”改革开放40年来,我们以敢闯敢干的勇气和自我革新的担当,闯出了一条新路、好路,实现了从“赶上时代”到“引领时代”的伟大跨越。今天,我们要不忘初心、牢记…

工作中提高CSS的编写效率,可以多用这三个CSS伪类

:where 基本使用 :where() CSS 伪类函数接受选择器列表作为它的参数&#xff0c;将会选择所有能被该选择器列表中任何一条规则选中的元素。 以下代码&#xff0c;文本都会变成 yellow 颜色 :where(div p) span {color: yellow; }<div class"test-div"><…

如何为你的公司选择正确的AIGC解决方案?

如何为你的公司选择正确的AIGC解决方案&#xff1f; 摘要引言词汇解释&#xff08;详细版本&#xff09;详细介绍1. 确定需求2. 考虑技术能力3. 评估可行性4. 比较不同供应商 代码快及其注释注意事项知识总结 博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客&…

微信8.0.41更新来了,看看有哪些变化吧

微信给我们带来了极大的方便&#xff0c;无论是日常聊天还是工作沟通&#xff0c;几乎离不开它。 时不时会给我一种熟悉的陌生感。 这个功能&#xff0c;好像我之前是没见过的。 就比如公众号信息流&#xff0c;刷着刷着就会发现&#xff0c;怎么会有看一看的信息推流会突然出现…

C语言控制语句——循环语句

什么是循环 重复执行代码 为什么需要循环 循环的实现方式 whiledo…whilefo while语句 语法格式&#xff1a; while (条件) {循环体…… }需求&#xff1a;跑步5圈 示例代码&#xff1a; #include <stdio.h>int main() {// 需求跑步5圈// 1. 条件变量的定义int i 1;…

golang入门笔记——nginx

文章目录 Nginx介绍Nginx的安装Nginx文件Nginx反向代理负载均衡nginx动静分离URLRewrite防盗链nginx高可用配置安全性Nginx限流Nginx缓存集成Lua脚本OpenRestry Nginx介绍 Nginx是一个高性能的HTTP和反向代理服务器&#xff0c;特点是占用内存少&#xff0c;并发能力强&#x…

15-数据结构-二叉树的遍历,递归和非递归

简介&#xff1a; 本文主要是代码实现&#xff0c;二叉树遍历&#xff0c;递归和非递归&#xff08;用栈&#xff09;。主要为了好理解&#xff0c;直接在代码处&#xff0c;加了详细注释&#xff0c;方便复习和后期默写。主要了解其基本思想&#xff0c;为后期熟练应用…