当前位置: 首页 > article >正文

显存占用 显存测试

目录

显存测试

显存占用示例

一个模型多卡占用


显存测试

import torch

# 计算张量的大小(例如:每个 float 占用 4 字节)
# 40GB = 40 * 1024 * 1024 * 1024 字节
# 每个 float 4 字节,因此需要的 float 数量为 (40 * 1024 * 1024 * 1024) / 4
num_elements = (40 * 1024 * 1024 * 1024) // 4

# 创建一个在 GPU 上的张量
tensor = torch.empty(num_elements, dtype=torch.float32, device='cuda')

print(tensor)

显存占用示例

42G和62G显存


import time

import torch

# 设置张量的大小
num_elements = (10 * 1024 * 1024 * 1024) // 4  # 42GB 大小
# num_elements = (15 * 1024 * 1024 * 1024) // 4  # 62GB 大小

# 创建两个随机数张量,存放在 GPU 上
tensor_a = torch.rand(num_elements, dtype=torch.float32, device='cuda:3')
tensor_b = torch.rand(num_elements, dtype=torch.float32, device='cuda:3')

# 创建一个用于存储结果的张量
# result_tensor = torch.empty(num_elements, dtype=torch.float32, device='cuda')
index=0
while True:
    result_tensor=tensor_a + tensor_b
    # tensor_a + tensor_b
    time.sleep(0.01)
    index+=1
    print(index)

一个模型多卡占用

import time

import torch
import torch.nn as nn

# 设置张量的大小
num_elements = (6 * 1024 * 1024 * 1024) // 4  # 40GB 大小

# 确保有两个可用的 GPU
if torch.cuda.device_count() < 2:
    raise RuntimeError("至少需要两块 GPU")

# 创建两个随机数张量,存放在 GPU 上
tensor_a = torch.rand(num_elements , dtype=torch.float32, device='cuda:0')
tensor_b = torch.rand(num_elements , dtype=torch.float32, device='cuda:0')

# 创建一个用于存储结果的张量
result_tensor = torch.empty(num_elements , dtype=torch.float32, device='cuda:1')

class AddModel(nn.Module):
    def forward(self, tensor_a, tensor_b):
        return tensor_a + tensor_b

# 实例化模型并使用 DataParallel
model = AddModel().cuda()
model = nn.DataParallel(model)

index=0
# 不断相加的循环
while True:
    # 使用 DataParallel 进行加法
    result_tensor = model(tensor_a, tensor_b)

    # 将结果存储在第一个 GPU 上
    result_tensor = result_tensor.to('cuda:1')

    time.sleep(0.01)
    index += 1
    print(index)


http://www.kler.cn/a/385338.html

相关文章:

  • redis笔记-数据结构
  • 【青牛科技】GC5931:工业风扇驱动芯片的卓越替代者
  • 深度学习:bert模型
  • 云轴科技ZStack助力新远科技开启化工行业智能制造新篇章
  • 前端 Canvas 绘画 总结
  • Ceisum无人机巡检视频投放
  • 《现代网络技术》读书笔记:SDN数据平面和OpenFlow
  • O-RAN 前传传输同步配置
  • kafka版本
  • java中图片加载
  • While 循环与 break 语句
  • 【数据集】【YOLO】【目标检测】口罩佩戴识别数据集 1971 张,YOLO佩戴口罩检测算法实战训练教程!
  • Autosar NvM规范导读工作原理与实现代码剖析
  • 关于Websocket
  • 文件IO拷贝应用
  • Matlab车牌识别课程设计报告(附源代码)
  • SpringBoot中使用多线程ThreadPoolTaskExecutor+CompletableFuture
  • 代码随想录算法训练营Day55 | 图论理论基础、深度优先搜索理论基础、卡玛网 98.所有可达路径、797. 所有可能的路径、广度优先搜索理论基础
  • 一级注册消防工程师重点笔记
  • ICT网络赛道安全考点知识总结4
  • SearchGPT 网络搜索功能利用了微软必应的搜索技术
  • 2024网鼎杯web1+re2 wp
  • O-RAN前传Spilt Option 7-2x
  • RPA是什么,RPA有什么作用?
  • 如何在 Docker 容器中启动 X11 图形界面程序
  • 前端UniApp面试题及参考答案(100道题)