博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《CUDA C编程权威指南》——2.4节设备管理
阅读量:6591 次
发布时间:2019-06-24

本文共 952 字,大约阅读时间需要 3 分钟。

本节书摘来自华章社区《CUDA C编程权威指南》一书中的第2章,第2.4节设备管理,作者[美] 马克斯·格罗斯曼(Max Grossman) ,更多章节内容可以访问云栖社区“华章社区”公众号查看

2.4 设备管理

NVIDIA提供了几个查询和管理GPU设备的方法。学会如何查询GPU设备信息是很重要的,因为在运行时你可以使用它来帮助设置内核执行配置。
在本节,你将通过以下两种方法学习查询和管理GPU设备:
CUDA运行时API函数
NVIDIA系统管理界面(nvidia-smi)命令行实用程序
2.4.1 使用运行时API查询GPU信息
在CUDA运行时API中有很多函数可以帮助管理这些设备。可以使用以下函数查询关于GPU设备的所有信息:

4b7ae74b99129659b07fc6ef4163ccbb7bd69db3

代码清单2-8提供了一个示例,查询了大家通常感兴趣的一般属性。可以使用下列命令编译并运行:

b078ab46f78118ed3b14d441dd6cb65bf28e90f1
74b351949f28772b830dfed0245c623e69ccfce8

2.4.2 确定最优GPU

一些系统支持多GPU。在每个GPU都不同的情况下,选择性能最好的GPU运行核函数是非常重要的。通过比较GPU包含的多处理器的数量选出计算能力最佳的GPU。如果你有一个多GPU系统,可以使用以下代码来选择计算能力最优的设备:

5c1a68779c3dd6ce095a1de3b818e40109bcb349

2.4.3 使用nvidia-smi查询GPU信息

nvidia-smi是一个命令行工具,用于管理和监控GPU设备,并允许查询和修改设备状态。
你可以从命令行调用nvidia-smi。例如,要确定系统中安装了多少个GPU以及每个GPU的设备ID,可以使用以下命令:

31b2eebb38c156c8fe3ffa117d91009e1502bce4
d0f43d191d27bffa8ab6a61432e7dff539092b1a

2.4.4 在运行时设置设备

支持多GPU的系统是很常见的。对于一个有N个GPU的系统,nvidia-smi从0到N―1标记设备ID。使用环境变量CUDA_VISIBLE_DEVICES,就可以在运行时指定所选的GPU且无须更改应用程序。
设置运行时环境变量CUDA_VISIBLE_DEVICES=2。nvidia驱动程序会屏蔽其他GPU,这时设备2作为设备0出现在应用程序中。
也可以使用CUDA_VISIBLE_DEVICES指定多个设备。例如,如果想测试GPU 2和GPU 3,可以设置CUDA_VISIBLE_DEVICES = 2, 3。然后,在运行时,nvidia驱动程序将只使用ID为2和3的设备,并且会将设备ID分别映射为0和1。

转载地址:http://mmuio.baihongyu.com/

你可能感兴趣的文章
栈与递归的实现
查看>>
Manually Summarizing EIGRP Routes
查看>>
spring boot 1.5.4 整合webService(十五)
查看>>
modsecurity(尚不完善)
查看>>
获取.propertys文件获取文件内容
查看>>
Redis3.0.5配置文件详解
查看>>
Keepalived+Nginx实现高可用
查看>>
Know about Oracle RAC Heartbeat
查看>>
JQuery——实现Ajax应用
查看>>
前端05.js入门之BOM对象与DOM对象。
查看>>
oracle kill所有plsql developer进程
查看>>
12c rac 实例无法启动之磁盘组空间耗尽
查看>>
keepalived双机热备原理及实例部署LVS+keepalived
查看>>
曲线学习PyQt5方案一
查看>>
企业私有云之rabbitmq高可用
查看>>
OpenCV学习】矩阵运算和操作2
查看>>
nginx+ffmpeg搭建rtmp转播rtsp流的flash服务器
查看>>
Win10 IoT C#开发 1 - Raspberry安装IoT系统及搭建开发环境
查看>>
关于在arm裸板编程时使用printf问题的解决方法
查看>>
开源人工智能技术将改变一切
查看>>