我将模型迁移完之后,运行时发现显存有占用3G,但是内存占用13G,且NPU占用率一直为0
我写了一个demo来测试NPU,发现所有的运算均在CPU上进行,而显卡并没有参与。
以下为我的demo代码:
import torch
import torch_npu
# 检查是否有可用的GPU
device = torch.device("npu" if torch_npu.npu.is_available() else "cpu")
# 定义矩阵大小
n = 1000000
m = 2000000
p = 1500000
# 生成随机矩阵
A = torch.randn(n, m).to(device)
B = torch.randn(m, p).to(device)
# 执行矩阵乘法操作
C = torch.matmul(A, B)
# 等待计算完成
torch_npu.npu.synchronize()
# 打印显存使用情况
allocated_memory = torch_npu.npu.memory_allocated(device)
cached_memory = torch_npu.npu.memory_cached(device)
print(f"Allocated memory: {allocated_memory / 1024 / 1024} MB")
print(f"Cached memory: {cached_memory / 1024 / 1024} MB")
以下为资源使用情况:

我将模型迁移完之后,运行时发现显存有占用3G,但是内存占用13G,且NPU占用率一直为0
我写了一个demo来测试NPU,发现所有的运算均在CPU上进行,而显卡并没有参与。
以下为我的demo代码:
import torch
import torch_npu
# 检查是否有可用的GPU
device = torch.device("npu" if torch_npu.npu.is_available() else "cpu")
# 定义矩阵大小
n = 1000000
m = 2000000
p = 1500000
# 生成随机矩阵
A = torch.randn(n, m).to(device)
B = torch.randn(m, p).to(device)
# 执行矩阵乘法操作
C = torch.matmul(A, B)
# 等待计算完成
torch_npu.npu.synchronize()
# 打印显存使用情况
allocated_memory = torch_npu.npu.memory_allocated(device)
cached_memory = torch_npu.npu.memory_cached(device)
print(f"Allocated memory: {allocated_memory / 1024 / 1024} MB")
print(f"Cached memory: {cached_memory / 1024 / 1024} MB")
以下为资源使用情况: