如何将NumPy数组复制到已预分配的CuPy设备数组?
将NumPy数组复制到预分配的CuPy GPU数组
直接用CuPy数组的set()方法就能实现,它支持把主机端的NumPy数组直接复制到已预分配的设备数组中,完全利用预分配内存:
import numpy as np import cupy as cp # 创建NumPy主机数组 np_arr = np.array([1, 2, 3, 4, 5], dtype=np.float32) # 预分配同形状、同数据类型的CuPy设备数组 pre_allocated_cp_arr = cp.empty_like(np_arr) # 把NumPy数组复制到预分配的GPU数组 pre_allocated_cp_arr.set(np_arr) # 验证结果 print(pre_allocated_cp_arr) # 输出: [1. 2. 3. 4. 5.]
注意事项
- 必须保证NumPy数组和预分配的CuPy数组形状一致、数据类型匹配,否则会触发类型不兼容或形状不匹配的错误
set()方法是原地修改操作,不会额外分配新的GPU内存,完全复用你预先开辟的空间
内容的提问来源于stack exchange,提问作者stavoltafunzia
相关产品推荐
相关产品推荐

