本文共 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设备的所有信息:代码清单2-8提供了一个示例,查询了大家通常感兴趣的一般属性。可以使用下列命令编译并运行:
2.4.2 确定最优GPU
一些系统支持多GPU。在每个GPU都不同的情况下,选择性能最好的GPU运行核函数是非常重要的。通过比较GPU包含的多处理器的数量选出计算能力最佳的GPU。如果你有一个多GPU系统,可以使用以下代码来选择计算能力最优的设备:2.4.3 使用nvidia-smi查询GPU信息
nvidia-smi是一个命令行工具,用于管理和监控GPU设备,并允许查询和修改设备状态。你可以从命令行调用nvidia-smi。例如,要确定系统中安装了多少个GPU以及每个GPU的设备ID,可以使用以下命令: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/