PyTorch CUDA GPU高占用测试

news2024/9/28 19:24:57

0x00 问题描述

安装完成PyTorch、CUDA后,验证PyTorch是否能够通过CUDA高占用GPU(占用>95%),特地使用以下代码测试。

0x01 代码设计

这个代码会持续执行神经网络的训练任务,每次循环都进行前向传播、反向传播和参数更新,以保持高强度的GPU占用。

## CUDA - GPU 占用测试
## 正确运行结果为:GPU占用显著提高(>95,NVIDIA 3060 LAPTOP)

import torch
import torch.nn as nn
import torch.optim as optim

# 检查CUDA是否可用
if torch.cuda.is_available():
    device = torch.device("cuda")
    print("CUDA is available. Using GPU.")
else:
    raise Exception("CUDA is not available. Please ensure you have a GPU.")

# 创建一个简单的神经网络
class SimpleNet(nn.Module):
    def __init__(self):
        super(SimpleNet, self).__init__()
        self.fc1 = nn.Linear(10000, 10000)  # 大规模线性层,可以根据需要调整大小

    def forward(self, x):
        x = self.fc1(x)
        return x

net = SimpleNet().to(device)

# 定义损失函数和优化器
criterion = nn.MSELoss()
optimizer = optim.SGD(net.parameters(), lr=0.01)

# 创建一个大型随机输入张量
batch_size = 32
input_data = torch.randn(batch_size, 10000, device=device)

# 持续执行神经网络训练任务以保持高占用率
try:
    while True:
        # 正向传播
        output = net(input_data)
        loss = criterion(output, input_data)

        # 反向传播和优化
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
except KeyboardInterrupt:
    print("Stopped by user.")

# 释放GPU资源
net = None
torch.cuda.empty_cache()

0x02 实验结果

笔者使用的3060 Laptop GPU 占用在95%以上,代码效果显著,说明PyTorch、CUDA环境安装成功。

0x03 后记

  • No Pains, No Gains.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1078091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库系统工程师------时间周期

时间周期 计算机各种周期 时钟周期 机器(CPU)周期 指令周期 总线周期 时钟周期:也称振荡周期,定义为时钟频率的倒数。是计算机中最基本、最小的时间单位。 机器(CPU)周期:也称CPU周期&…

unity 使用模拟器进行Profiler性能调试

这篇文章主要记录如何实现通过模拟器对打包的app游戏进行Profiler调试。主要记录一些比较重要的点。 准备工作 首先你要能够打包unity的安卓包,如果没有安装安卓组件,请先安装组件。 安装完成以后,会在unity的安装目录找到相应的SDK 这个…

encoding/json vs json-iterator

encoding/json vs json-iterator 100% Compatibility 默认情况下,jsoniter 不会像标准库那样对映射键进行排序。如果你想要 100% 的兼容性,就这样使用 m : map[string]interface{}{"3": 3,"1": 1,"2": 2, } json : json…

10.10作业

运算符重载 #include <iostream>using namespace std;class Per{friend bool operator<(const Per &l, const Per &r);friend const Per operator(const Per &L,const Per &R);friend Per &operator-(Per &l , const Per &r); private:i…

棱镜七彩参编!开源领域4项团体标准正式发布

近日&#xff0c;中电标2023年第27号团体标准公告正式发布&#xff0c;《T/CESA 1270.2-2023 信息技术 开源治理 第 2 部分&#xff1a;企业治理评估模型》、《T/CESA 1270.3-2023 信息技术 开源治理 第 3 部分&#xff1a;社区治理框架》、《T/CESA 1270.5-2023 信息技术 开源…

Unity 捕鱼游戏开发教程与源码

效果图展示 项目分析 主要功能点&#xff1a; 鱼的移动路线 这里使用简单移动的方式&#xff1a;随机位置然后随机鱼直线或者每帧更新鱼的角度实现走圆形。枪随着鼠标或点击位置移动 这个用坐标转换参考代码 private void Update(){Vector3 mousePos; // 鼠标位置// RectTra…

[羊城杯 2020]black cat - 文件隐写+RCE(hash_hmac绕过)

[羊城杯 2020]black cat 1 解题流程1.1 第一步1.2 第二步1.3 第三步 1 解题流程 1.1 第一步 打开网站有首歌&#xff0c;按F12也是提示听歌&#xff0c;ctf-wscan扫描就flag.php下载歌&#xff0c;用010打开&#xff0c;发现有一段内容if(empty($_POST[Black-Cat-Sheriff]) |…

信息系统项目管理师第四版学习笔记——项目管理概论

项目基本要素 项目管理就是将知识、技能、工具与技术应用于项目活动&#xff0c;以满足项目的要求。通过合理地应用并整合特定的项目管理过程&#xff0c;项目管理使组织能够有效并高效地开展项目。 时间、成本、范围和质量等项目管理测量指标&#xff0c;历来被视为确定项目…

【Android】点击短信链接唤起APP的方案实践

一.概述 在很多业务场景中&#xff0c;需要点击短信链接跳转到App的指定页面。在Android系统中&#xff0c;想要实现这个功能&#xff0c;可以通过DeepLink或AppLink实现。 二.方案 1.DeepLink DeepLink是Android系统最基础、最普遍、最广泛的外部唤起App的方式&#xff0c;不…

源码开发经验:构建直播带货系统的关键步骤

在数字时代&#xff0c;直播带货已成为一种引领电子商务发展的热门趋势。无论您是一家电商巨头还是一位创业者&#xff0c;构建自己的直播带货平台都可能是一个具有巨大潜力的业务机会。本文将深入探讨构建直播带货平台的关键步骤&#xff0c;带您走进这一蓬勃发展的领域。 第…

每日提醒按时完成各项任务的手机app有什么?

快节奏的生活及工作压力下&#xff0c;很多事情处理起来也比较紧张&#xff0c;有时候我们需要抽出一丁点空闲的时间来处理非常重要的事情&#xff0c;而此时一定要把握好处理工作任务的时间&#xff0c;因此&#xff0c;时间观念要强在生活及工作中就变得非常重要&#xff0c;…

【RabbitMQ 实战】10 消息持久化和存储原理

一、持久化 1.1 持久化对象 rabbitmq的持久化分为三个部分&#xff1a; 交换器的持久化。队列的持久化。消息的持久化。 1.1.1 交换器持久化 交换器的持久化是通过在声明交换器时&#xff0c; 指定Durability参数为durable实现的。若交换器不设置持久化&#xff0c;在rabb…

【Node.js】zlib 模块

const fs require(fs) const zlib require(zlib)const gzip zlib.createGzip()const readstream fs.createReadStream(./avatar/1.txt) const writestream fs.createWriteStream(./avatar/2.txt)// 在写入之前压缩文件 readstream.pipe(gzip).pipe(writestream)可以明显看…

【Qt】QMainWindow

文章目录 **QMainWindow**简介菜单栏工具栏状态栏**铆接部件**核心部件&#xff08;中心部件&#xff09; 资源文件QtCreator导入资源文件VS导入资源文件使用资源文件 QMainWindow简介 QMainWindow是一个为用户提供主窗口程序的类&#xff0c;包含一个菜单栏&#xff08;menu …

AMP 软中断的过程和GPIO中断差别

ZYNQ笔记&#xff08;5&#xff09;&#xff1a;软中断实现核间通信 - 咸鱼IC - 博客园 (cnblogs.com) ZYNQ基础----AMP核间软中断_zynq核间中断-CSDN博客 相较于GPIO中断&#xff0c;省去了对中断触发敏感类型的配置&#xff08;软中断不可配&#xff09;&#xff0c;对中断管…

session是什么?cookie是什么,两者的区别,以及应用的场景?

Session和Cookie是两个常见的Web开发中用于状态管理的概念。Session是服务器端用来存储用户信息的一种机制。Cookie是一种存储在客户端浏览器中的小型文本文件。 当用户访问一个网站时&#xff0c;服务器为该用户创建一个唯一的Session&#xff0c;并生成一个Session ID。这个…

【CVPR 2023】 All are Worth Words: A ViT Backbone for Diffusion Models

All are Worth Words: A ViT Backbone for Diffusion Models, CVPR 2023 论文&#xff1a;https://arxiv.org/abs/2209.12152 代码&#xff1a;https://github.com/baofff/U-ViT 解读&#xff1a;U-ViT: A ViT Backbone for Diffusion Models - 知乎 (zhihu.com) All are W…

Vue实现简单的接口封装

1. 在src中创建一个api文件夹 2. 按功能、模块等新建对应的js文件 3. 在内部写对应的封装接口&#xff0c;并导出 import axios from "axios";/*** 接口名称&#xff1a;* 接收参数&#xff1a;* 返回参数&#xff1a;* */export const miens ()>{return new P…

Linux下启动jar包的几种常见方式

首先把这两个jar上传到linux ,会操作启动一个应用和同时启动多个应用 两个项目jar已上传&#xff0c;可去这里下载&#xff1a; https://download.csdn.net/download/zengzhaowu313/88411336 第一种、直接启动 jar 包 &#xff0c;先启动一个应用程序 &#xff0c;后面操作启…

上交所证券代码段分配规则

一、证券代码定义及编码原则 上海证券交易所证券代码采用6位阿拉伯数字编码&#xff0c;取值范围为000000-999999。6位代码的前3位为类别标识区&#xff0c;其中第一位为类别标识&#xff0c;第二位至第三位为业务标识&#xff0c;6位代码的后3位为顺序编码区&#xff1a; 二、…