测试docker GPU性能损失

NVIDIA 3090 利用HSOpticalFlow代码测试docker GPU性能损失

docker介绍图如下:

在这里插入图片描述
形象生动展示了他们之间的关系
今天要测试docker容器运行HSOpticalFlow算法的性能损失,包括CPU和GPU
上一篇博客
http://t.csdnimg.cn/YW5kE
我已经介绍了使用docker和nvidia containers toolkit使用容器复现的过程,加入计算时间的代码页贴出来了:
http://t.csdnimg.cn/InxW0
这篇文章与docker中的运行速度做比较
因为GPU需要预热,所以计算2000次求平均
CPU修改成10次求平均
修改上一篇博客的代码

	for (int i = 0; i < 1000; i++) {ComputeFlowCUDA(h_source, h_target, width, height, stride, alpha, nLevels, nWarpIters, nSolverIters, h_u, h_v);}cudaEventRecord(stopGPU);cudaEventSynchronize(stopGPU);cudaEventElapsedTime(&millisecondsGPU, startGPU, stopGPU);printf("Average GPU Processing time: %f ms\n", millisecondsGPU / 1000);

docker里运行速度:

	root@04feecd3dc8a:/workspace/cuda-samples-master/Samples/5_Domain_Specific/HSOpticalFlow# ./HSOpticalFlow 
HSOpticalFlow Starting...GPU Device 0: "Ampere" with compute capability 8.6Loading "frame10.ppm" ...
Loading "frame11.ppm" ...
开始计算,预计3分钟
Computing optical flow on GPU...
GPU Processing time: 31.399443 ms
Computing optical flow on CPU...
CPU Processing time: 10634 ms
L1 error : 0.044308

docker外运行速度:

yhp1szh@SZH-C-006RW:/mnt/workspace/xiebell/pytorch2404/cuda-samples-master/Samples/5_Domain_Specific/HSOpticalFlow$ ./HSOpticalFlow 
HSOpticalFlow Starting...GPU Device 0: "Ampere" with compute capability 8.6Loading "frame10.ppm" ...
Loading "frame11.ppm" ...
开始计算,预计3分钟
Computing optical flow on GPU...
GPU Processing time: 31.284836 ms
Computing optical flow on CPU...
CPU Processing time: 8843 ms
L1 error : 0.044308

性能损失计算方法

性能损失可以通过以下公式计算:

在这里插入图片描述

在这里插入图片描述
对于GPU:

性能损失百分比≈0.365%

对于CPU:

性能损失百分比≈20.25%

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

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

相关文章

Java手动分页工具类

手动分页是一种在 Java 中处理大量数据集时的常见技术。虽然现代框架通常提供自动分页功能&#xff0c;但有时你可能需要在没有框架支持的情况下手动进行分页。下面是一个简单的手动分页的 Java 工具类示例&#xff1a; import java.util.List;public class PaginationUtils&l…

[Linux_IMX6ULL驱动开发]-GPIO子系统和Pinctrl子系统

目录 Pinctrl子系统的概念 GPIO子系统的概念 定义自己的GPIO节点 GPIO子系统的函数 引脚号的确定 基于GPIO子系统的驱动程序 驱动程序 设备树修改 之前我们进行驱动开发的时候&#xff0c;对于硬件的操作是依赖于ioremap对寄存器的物理地址进行映射&#xff0c;以此来达…

【020】基于JavaWeb实现的批报管理系统

项目介绍 基于jspservlet实现的批报管理系统采用B/S架构,该项目设计了一个角色管理员&#xff0c;管理员实现了我的案件、查询统计、项目维护等三大功能模块 技术栈 开发工具&#xff1a;Idea2020.3 运行环境&#xff1a;jdk1.8tomcat9.0mysql5.7 服务端技术&#xff1a;j…

麦肯锡专访 Mistral AI CEO:三五年后的工作,要比现在更有意义

【编者按】总部位于巴黎的人工智能初创公司 Mistral AI 成立仅一年&#xff0c;就被誉为现有大模型巨头的有力挑战者。 今年 2 月&#xff0c;Mistral AI 正式发布了旗舰级大模型 Mistral Large&#xff0c;直接对标 OpenAI 的 GPT-4&#xff1b;几周前&#xff0c;Mistral AI…

大数据Scala教程从入门到精通第一篇:Scala基本介绍

一&#xff1a;Scala基本介绍 1&#xff1a;Scala相当于Java的增强版和拓展 Scala 基于 JVM和 Java 完全兼容。同样具有跨平台、可移植性好、方便的垃圾回收等特性 Scala 比 Java 更加面向对象&#xff0c;可以说完全面对对象。 Scala 是一门函数式编程语言&#xff0c;Java就…

Element快速上手!

Element是饿了么公司前端团队开发的一套基于Vue的组件库&#xff0c;用于快速构建网页~ 官网链接&#xff1a; Element - The worlds most popular Vue UI frameworkElement&#xff0c;一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库https://element.elem…

UML之用例图

1.用例图 用例图指参与者&#xff0c;用例&#xff0c;边界以及它们之间的关系构成的用于描述系统功能的视图。说明是谁要使用系统&#xff0c;以及可以使用该系统可以做些什么。展示了一个外部用户能够观察到的系统功能模型图 2.用例图的元素 &#xff08;1&#xff09;参与…

Redis 实战之监视器

监视器 成为监视器向监视器发送命令信息总结 成为监视器 发送MONITOR 命令可以让一个普通客户端变为一个监视器&#xff0c; 该命令的实现原理可以用以下伪代码来实现&#xff1a; def MONITOR():# 打开客户端的监视器标志client.flags | REDIS_MONITOR# 将客户端添加到服务器…

解压.cpio.gz文件的步骤

cpio是一种用于创建和恢复文件系统映像的工具&#xff0c;而gz则是gzip压缩工具的扩展名。当你遇到一个名为.cpio.gz的文件时&#xff0c;这意味着这个文件已经被cpio和gzip联合压缩过。解压这样的文件需要两个步骤&#xff1a;首先解压缩&#xff0c;然后解cpio。 以下是解压.…

vtkvolume与vtkactor的区别与联系

参考&#xff1a; https://blog.csdn.net/qq_39966730/article/details/134926850 vtkVolume是vtkProp3D的子类&#xff0c;用于体渲染。类似于vtkActor(用于几何渲染)&#xff0c;vtkVolume保存转换信息&#xff0c;如位置&#xff0c;方向和比例&#xff0c;以及指向映射器和…

C++初阶之stack,queue,priority_queue的使用和模拟以及仿函数的创建和使用

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 算法 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂 目录 一.stack,queue,priority_queue简介以及代码模拟 1.1 stack …

js设计模式--观察者模式

概述 观察者模式用于在对象之间建立 一对多 的依赖关系&#xff0c;当一个对象状态发生变化时&#xff0c;它的所有依赖者&#xff08;观察者&#xff09;都会收到通知并自动更新。在js中&#xff0c;观察者模式通常由两个角色组成&#xff1a;主体&#xff08;Subject&#x…

uniapp 版本检查更新

总体来说uniapp的跨平台还是很不错的&#xff0c;虽然里面各种坑要去踩&#xff0c;但是踩坑也是开发人员的必修课和成长路。 这不&#xff0c;今天就来研究了一下版本检查更新就踩到坑了。。。先来看看检查更新及下载、安装的实现。 先来看看页面&#xff1a; 从左到右依次为…

推荐3个实用的github开源项目

目录&#xff1a; 1、AI生成高清短视频 2、媒体平台爬虫 3、文本转语音项目

【Linux网络编程】I/O多路转接之select

select 1.初识select2.了解select基本概念和接口介绍3.select服务器4.select特点及优缺点总结 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603;…

Spring Boot基础功能指引

文章目录 引言I 处理全局ExceptionII 定时任务III 引入springboot MVC3.1 添加Spring Web依赖3.2 重写SpringBootServletInitializer3.3 WebMvcConfigurer引言 I 处理全局Exception 类上加入注解@ControllerAdvice 定义controller切面方法上加入注解@ExceptionHandler(value =…

C++中的`this`指针详解

目录标题 1. this指针的基础1.1 this指针的定义1.2 this指针的用途 2. this指针的详细用法2.1 区分同名的成员和参数2.2 链式调用2.3 返回对象自身的地址 3. this在特殊情况下的用途3.1 在构造函数中使用this3.2 与智能指针结合使用 4. this指针的限制和注意事项4.1 静态成员函…

vue2 与vue3的差异汇总

Vue 2 与 Vue 3 之间存在多方面的差异&#xff0c;这些差异主要体现在性能、API设计、数据绑定、组件结构、以及生命周期等方面。以下是一些关键差异的汇总&#xff1a; 数据绑定与响应式系统 Vue 2 使用 Object.defineProperty 来实现数据的响应式&#xff0c;这意味着只有预…

系统架构设计师 - 计算机组成与体系结构(1)

计算机组成与体系结构 计算机组成与体系结构计算机结构 ★CPU 组成结构运算器组成控制器组成 计算机体系结构冯诺依曼结构哈弗结构 嵌入式芯片&#xff08;了解&#xff09; 存储系统 ★★★★概述Cache主存编址磁盘管理磁盘基本结构与存取过程磁盘优化分布存储磁盘管理 大家好…

数据挖掘(二)数据预处理

前言 基于国防科技大学 丁兆云老师的《数据挖掘》 数据挖掘 数据挖掘&#xff08;一&#xff09;数据类型与统计 2、数据预处理 2.1数据清理 缺失值处理&#xff1a; from sklearn.impute import SimpleImputer# 创建一个SimpleImputer对象&#xff0c;指定缺失值的处理策略…