gpt4 book ai didi

cuda - 运行CUDA可执行文件时如何选择设备?

转载 作者:行者123 更新时间:2023-12-04 10:20:35 25 4
gpt4 key购买 nike

我正在从外部连接到GPU群集,但我不知道如何选择要在其上运行CUDA程序的设备。

我知道集群中有两个Tesla GPU,我想选择其中一个。

有什么想法吗?当有许多计算机连接时,如何选择要使用的设备?

最佳答案

在运行时API中选择设备的规范方法是使用cudaSetDevice。这将配置运行时以在指定的设备上执行惰性上下文建立。在CUDA 4.0之前,此调用实际上并未建立上下文,只是告诉运行时尝试使用哪个GPU。从CUDA 4.0开始,此调用将在调用时在指定的GPU上建立上下文。还有cudaChooseDevice,它将在可用设备中进行选择以找到与调用者提供的条件匹配的设备。

您可以使用cudaGetDeviceCount枚举系统上可用的GPU,并使用cudaGetDeviceProperties检索其详细信息。 SDK deviceQuery示例显示了如何执行此操作的完整详细信息。

但是,根据主机和驱动程序的配置,您在选择多GPU系统中的GPU时可能需要小心。在Linux和Windows TCC驱动程序中,都存在将GPU标记为“计算专有”的选项,这意味着驱动程序将每次将每个GPU限制为一个事件上下文,或者禁止计算,这意味着没有CUDA程序可以在该设备上建立上下文。如果您的代码尝试在禁止使用的计算设备或正在使用的计算专用设备上建立上下文,则结果将是无效的设备错误。在政策要使用计算独占性的多GPU系统中,正确的方法不是尝试选择特定的GPU,而只是允许隐式地进行惰性上下文建立。驱动程序会自动选择一个免费的GPU来运行您的代码。可以通过使用cudaDeviceProp.computeMode调用读取cudaGetDeviceProperties字段来检查任何设备的计算模式状态。请注意,您可以自由检查不可用或受禁止的GPU并查询其属性,但是任何需要上下文建立的操作都将失败。

请参阅所有calls上的运行时API文档

关于cuda - 运行CUDA可执行文件时如何选择设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8784572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com