如何在cuPy中为多文件Python程序设置默认GPU设备?
在多文件CuPy程序中指定默认GPU设备
要将特定GPU(比如device-1)设为整个程序的默认设备,只需在程序入口(main.py)的最开始配置CuPy设备即可,具体实现如下:
核心方法:使用cupy.cuda.Device.use()
在main.py中,导入CuPy后立即创建目标设备实例并调用use()方法,后续所有未指定设备的CuPy操作都会自动使用该GPU,包括其他文件中的类和函数。
修改后的main.py代码:
import cupy as cp # 指定使用device-1(GPU索引从0开始计数) target_device = cp.cuda.Device(1) target_device.use() from maths_ops import MathsOps from dummy_class import DummyClass # 后续原有代码保持不变 maths_ops_instance = MathsOps() dummy_instance = DummyClass(maths_ops_instance) vector1 = cp.array([1, 2, 3]) vector2 = cp.array([4, 5, 6]) result = dummy_instance.perform_operation(vector1, vector2) print("Vector Addition Result:", result)
关键说明
- GPU索引从0开始,
Device(1)对应集群中的第二块GPU(即你提及的device-1)。 use()方法会将该设备设为当前线程的默认设备,所有后续CuPy数组创建、运算都会自动在这个GPU上执行,无需在其他文件中重复配置。- 若需临时切换设备,可使用上下文管理器:
with cp.cuda.Device(0): # 此代码块内的操作将使用device-0 temp_array = cp.array([1,2,3]) # 退出上下文后回到默认的device-1
验证设备生效状态
可在任意位置添加以下代码,确认当前默认设备:
print("当前默认GPU索引:", cp.cuda.Device().id)
内容的提问来源于stack exchange,提问作者skm
相关产品推荐
相关产品推荐

