limu|P31-34|CPU和GPU

目录
  • CPU VS GPU
  • 提升CPU利用率
    • 1、提升空间和时间的内存本地性
    • 2、并行以利用所有核
  • 提升GPU利用率
    • 1、并行
    • 2、内存本地性
    • 3、少用控制语句
    • 4、不要频繁在CPU和GPU之间传数据
  • 单机多卡并行
  • 分布式计算

CPU VS GPU

首先,一个芯片的空间是有限的,给了很多空间给某个内容(能力强),其他内容的空间就会被压缩(能力弱)

CPU擅长的是内存大小&控制流(处理通用计算),大量空间给了内存和逻辑控制单元
GPU擅长的是内存带宽&核——>从内存里读数据快&计算浮点数快(处理矩阵乘法)

提升CPU利用率

1、提升空间和时间的内存本地性

时间:把需要重用的数据保持在缓存里(因为在进行计算前,需要把数据按照主内存——L3——L2——L1——寄存器的顺序进行读取,每步都会有访问延时
空间:按序读写数据使得可以预读取

2、并行以利用所有核

超线程不一定提升性能,因为他们共享寄存器(比如1核2线程)

提升GPU利用率

1、并行

使用数千个线程,比如考虑到GPU的核数都是上千的,一千维的向量才能重复利用GPU

2、内存本地性

3、少用控制语句

比如ifelse,因为GPU控制流弱

4、不要频繁在CPU和GPU之间传数据

带宽限制、同步开销大

单机多卡并行

一台机器上可装多个GPU,训练和预测时,将一个小批量的计算切分至多个GPU,以加速。常用的切分方案:
1、数据并行:把小批量分为n块,每个GPU都拿到完整的参数,去计算一小块数据的梯度。通常可提升性能
2、模型并行:把模型分为n块,每个GPU拿到一小块模型,去计算一小块模型的前向&反向结果(Bug在于有顺序性,GPU利用率不佳)。用于超大模型,一个GPU放不下的那种(模型+参数保存的大小)
3、通道并行=数据+模型并行

分布式计算

多台机器,每台多个GPU。数据放在分布式文件系统上,每个机器都可以接触到

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

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

相关文章

【综合评价方法】常见综合评价方法及其实现

@目录1.数据预处理1.1 区分指标的属性1.2 指标正向化1.2.1 负向指标1.2.2 中间指标1.2.3 区间指标1.3 标准化1.3.1 Z-score 标准化1.3.2 Min-max 标准化1.3.3 Robust 标准化1.3.4 归一化2.模糊评价法(主观)(not recommended)3.层次分析法(主观)(not recommended)4.PCA主成分…

k8s集群使用私有仓库通过containerd上传镜像(没解决...)

查阅资料 根据 containerd 中部分文档 https://github.com/containerd/containerd/blob/release/1.5/docs/cri/registry.mdhttps://github.com/containerd/containerd/blob/release/1.5/docs/hosts.mdhttps://blog.csdn.net/u010566813/article/details/125990298最终私有仓库…

OceanBase-OB备份异地恢复流程

OB备份异地恢复流程 ——2023年5月9日 一、【白屏操作】 1、确定当前备份的OB版本: 2、新建备份目录授权(备份到本地目录为例):mkdir /obbackup/ chown -R admin.admin /obbackup/保证能解析成功: 3、点击“备份”,查询操作系统的目录结构:4、拷贝租户层面数据文件…

软工homework1:自我介绍+5问

软工homework1:自我介绍+5问这个作业属于哪个课程 广工计院计科34班软工这个作业要求在哪里 作业要求这个作业的目标 学会创建并使用自己的博客和Github,熟悉其中的基本操作和功能,用Markdown编写完成自我介绍以及软工5问前言 亲爱的读者,正如你所见,这是我在博客园发布的…

Typora 上传到 Github 实现笔记同步管理

首先在 Github 上 new 一个 repository ,我建的名称是 md_notes 然后在本地 terminal 中启动以下命令新建一个 ssh key ssh-keygen -o生成的 public key 就是我们需要的东西,接着再输入 cat C:\Users\ASUS/.ssh/id_rsa.pub 就能获取到生成的密钥复制生成的密钥(两个 PS 中间…

使用 T5 Transformer 进行多任务处理的指南

T5 (Text-to-Text Transfer Transformer) 模型是为探索迁移学习的局限性而进行的一项大规模研究(论文)的产物。它建立在 GPT、BERT 和 RoBERTa(仅举几例)模型等流行的架构之上,这些模型利用迁移学习取得了令人难以置信的成功。虽然类似 BERT 的模型可以进行微调以执行各…

SQL备忘记(一)

一前言 环境:win10 mysql 5.7.32 记录一些sql中平时容易弄错的或不明白一些知识点 二 正文 1 select语句执行顺序 FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY --一个大概的执行顺序,具体执行顺序根据数据库管理系统S的不同而不同 如下成绩表score如上,可以看出,avg(…

Linux C++ 开发5 - 一文了解CMake构建

1. 什么是CMake?1.1. CMake的定义 1.2. CMake有哪些优势? 1.3. CMake 的特点 1.4. Cmake 、CMakeLists.txt 、Make 、Makefile 之间的关系2. 应用案例2.1. 项目概述 2.2. CMakeLists.txt2.2.1. 基本用法 2.2.2. 完整内容 2.2.3. 构建执行上一篇《Linux C++ 开发4 - 入门makef…

BLE 广播报文格式

广播报文结构 一个完整的BLE广播报文由四部分组成,分别是前导码、接入地址、协议数据单元和CRC校验码。Preamble 前导 Access address(接入设备) PDU CRC校验1 Bytes 4 Bytes 2-37 Bytes 3 Bytes前导码:用来同步时序,可以是0x55或者0xAA,由接入地址的第一个比特决定。如果接…

[JLOI2015] 骗我呢——一类经典反射容斥

加载解析界面 数字变化跳跃反射容斥 一层反射:有一条线 \(y=x+b\) 不能碰到。 从第一次碰到直线开始,将后面的部分沿直线翻折,最终一定会到达 \((n-b,n+b)\),因为 \(b\ne 0\),所以构成双射。答案即为 \(\binom{2n}{n}-\binom{2n}{n-b}\)。 注意,如果最终到达的位置是 \((…

南沙区信息学奥林匹克竞赛(信奥赛)介绍

​信息学奥林匹克竞赛(International Olympiad in Informatics,IOI)是一项旨在选拔和培养信息技术和计算机科学人才的国际性竞赛。该竞赛始于1989年,每年举办一次,由不同的国家轮流承办。参加比赛的选手来自全球各国,都是信息技术和计算机科学领域的尖子生。信息学奥林匹…