首页 > 其他分享 >GPU学习笔记

GPU学习笔记

时间:2024-02-01 10:11:08浏览次数:30  
标签:笔记 学习 掩码 线程 内存 寄存器 wrap GPU

GPU相比CPU更适合连续的同质的运算。
原因:
  GPU有更多算术运算单元(ALU)
  支持多线程处理分支
  wrap独占寄存器
  ...

单指令多数据(SIMD):每次取一条指令,应用到多个不同数据计算的计算上。
单指令多线程(SIMT):会把程序分支分布到不同线程上,线程组执行每执行指令会更新掩码告知下一个指令由哪一条线程执行。
掩码叫Active Mask,粒度为wrap。同时多个分支时,每次执行命令会根据掩码关闭寄存器的写,掩码关闭但对应的线程会空跑,只是不能写寄存器。这就导致一个wrap若同时处理到多种分支情况,会将不同分支计算会分命令批次写入寄存器,导致计算变慢。就像一个开关控制多条铁路的转向。

在GPU中并行执行的一组线程称为Wrap。
Wrap的大小为16~64个线程。

gpu合并存储访问(Coalescing Memory Accesses):从内存中读取32~128bytes的连续内存块,称为Transaction。cache missing就会影响效率。
推荐:
  字节对齐。
  Structure of array。
  连续访问,减少随机访问。

gpu延迟隐藏:当wrap读取内存数据时耗时大,该机制将该wrap冻结并将其运算资源(ALU)分配给其他Wrap。
GPU切换线程比CPU块,因为CPU切换 线程需要将寄存器的值写回内存(即保存上下文),而GPU是wrap独占寄存器,不需要将寄存器写回内存。

标签:笔记,学习,掩码,线程,内存,寄存器,wrap,GPU
From: https://www.cnblogs.com/lanyelinxiang/p/18000655

相关文章

  • tcp 远程服务器,C#编程学习之使用TcpClient / BeginConnect测试远程服务器tcp端口连接
    原文链接:hhttps://blog.csdn.net/weixin_36286567/article/details/119265325有时候经常需要对一些服务器的端口进行tcp连接测试,通常使用“telnetIP地址端口号”的方式即可,不能说这种方式不可取,只是使用起来比较麻烦,本着简单好用的目的,不如我们自己动手写一个测试tcp端口连接的......
  • 字符串算法学习笔记
    \(\text{Pt.}1\)基础一、进制哈希二、Manacher三、Trie\(\text{Pt.}2\)自动机自动机是什么?它是一个对“信息序列”进行判定的数学模型。“信息序列”可以很随意,比如一个二进制数,比如一个字符串。而“判定”也可以很随意,比如判定一个二进制数是不是奇数,判定当前字符串是......
  • m基于Q-Learning强化学习的异构网络小区范围扩展(CRE)技术matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下: 2.算法涉及理论知识概要        基于Q-Learning强化学习的异构网络小区范围扩展(CellRangeExtension,CRE)技术是一种旨在优化异构无线网络性能的方法。异构网络是由不同类型的基站(如宏基站、微基站、皮基站等)组成的网络,这......
  • 程序是怎样跑起来的第二章读书笔记
    根据本章内容知道了8位=1字节,了解了用二进制数表示计算机信息的原因。只要掌握了使用二进制数来表示信息的方法及其运算机制也就自然能够了解程序的运行机制,理解了为什么计算机处理的信息要用二进制数来表示的,近一步知道用二进制数表示计算机信息的原因。计算机内部是由IC”这种......
  • 蒻苟的第一篇学习笔记(快速排序)
    快速排序是一个非常经典也非常常用的排序算法。在平均状况下,排序n个项目需要Ο(nlogn)次比较,在最坏状况下则需要Ο(n2)次比较,但这种状况其实并不常见。快速排序是分而治之思想在排序算法上的典型应用。算法步骤:1.从数列中挑出一个元素,称为"基准"。2。设置两个"哨兵",利用......
  • 《程序是怎样跑起来的》阅读笔记 - 第一、二章
    简介:《程序是怎样跑起来的》是一本介绍计算机程序工作原理的畅销书籍。本文将对该书的前两章进行阅读笔记,主要涵盖了计算机基础知识和程序执行过程的基本原理。第一章:计算机基础知识本章主要讲解了计算机的基本组成部分以及它们之间的关系。作者通过引入一个简单的模型,描述了计......
  • 欧拉函数学习笔记
    前言本人能力有限,有错误欢迎指出。定义\(\varphi(n)\)表示的是小于等于\(n\)和\(n\)互质的数的个数。公式设\(n=\prod\limits_{i=1}^{s}p_i^{k_i}\),有\[\begin{aligned}\varphi(n)&=\prod_{i=1}^s\varphi(p_i^{k_i})\\&=\prod_{i=1}^sp_i^{k_i}-p_i^{k_i-1}\\&=\prod......
  • 《程序是怎样跑起来的》阅读笔记 - 第三、四章
    简介:继续探索《程序是怎样跑起来的》,本文将对该书的第三、四章进行阅读笔记,重点关注计算机程序的存储和数据处理。第三章:计算机的存储器本章主要讲解了计算机的存储器,包括随机存取存储器(RAM)和只读存储器(ROM)。作者首先介绍了这两种存储器的基本概念和特点,然后深入讨论了它们在计......
  • 标题:《程序是怎样跑起来的》阅读笔记 - 第五、六章
    简介:本文将继续探索《程序是怎样跑起来的》,对该书的第五、六章进行阅读笔记,重点关注计算机程序的运行流程和输入输出操作。第五章:程序的执行本章主要讲解了程序的执行过程,包括指令的抓取、解码和执行等步骤。作者详细介绍了计算机中指令的编码方式和指令集体系结构,并解释了控制......
  • python学习
    函数python的特性之一:函数可以有多个返回值defdivide_exact(n,d):  returnn//d,n%d>>>a,b=divide_exact(2013,10)>>>a>>>201>>>b>>>3在定义函数时可以给参数默认值,也就是如果参数没有一个与其绑定的值,那么它就会跟默认值绑定。defdivide_exact(n,d=1......