《CUDA C编程权威指南》——2.4节设备管理

简介:

本节书摘来自华章社区《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。

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
相关文章
|
11月前
|
缓存 并行计算 算法
【CUDA学习笔记】第六篇:CUDA中的高级概念(上)
【CUDA学习笔记】第六篇:CUDA中的高级概念(上)
210 0
|
缓存 并行计算 API