arch

Eloudy3 天前
gpu·arch
11章 像素和顶点数据导出 - “Vega“ 7nm Instruction Set ArchitectureReference Guide导出指令将像素或顶点着色器数据从VGPR(向量通用寄存器)复制到专用的输出缓冲区。导出指令输出以下类型的数据:
Eloudy3 天前
gpu·arch
10章 数据共享操作 - “Vega“ 7nm Instruction Set ArchitectureReference Guide本地数据共享(LDS)是一种极低延迟、用于临时数据的RAM暂存器,其有效带宽至少比直接、无缓存的全局内存高出一个数量级。它允许工作组内的工作项之间共享数据,并用于保存像素着色器参数插值所需的参数。与只读缓存不同,LDS允许对内存空间进行高速的"写入后读取"复用(聚集/读取/加载和分散/写入/存储操作)。
Eloudy4 天前
gpu·arch
08章 平面内存指令 - “Vega“ 7nm Instruction Set ArchitectureReference Guide平面内存指令将数据片段读入或写出VGPR(向量通用寄存器);波前(wavefront)中的每个工作项(work-item)都会独立执行此操作。与缓冲区(buffer)或图像(image)指令不同,平面指令不使用资源常量(resource constant)来定义内存表面的基地址。相反,平面指令使用来自VGPR的单个平面地址;此地址将内存视为单个平面内存空间进行寻址。该内存空间包括显存(video memory)、系统内存(system memory)、LDS(本地数据共享)内存以及暂存(scratch,私
Eloudy7 天前
gpu·arch
08章 向量内存操作 - “Vega“ 7nm Instruction Set ArchitectureReference Guide向量内存(VMEM)指令将每个工作项的数据分别读取或写入VGPR中。这与标量内存指令形成对比,标量内存指令移动的是波前中所有线程共享的单个数据块。所有向量内存(VM)操作都由纹理缓存系统(一级和二级缓存)处理。
Eloudy8 天前
gpu·cuda·arch
cudaEventCreateWithFlags 的 cudaEventInterprocess 和 cudaEventDisableTimingcudaEventCreateWithFlags(&localEvent, cudaEventInterprocess | cudaEventDisableTiming); 解释功能,特性
Eloudy10 天前
人工智能·gpu·arch
06章 矢量ALU运算 - “Vega“ 7nm Instruction Set ArchitectureReference Guide矢量ALU指令(VALU)对64个线程中的每一个线程的数据执行算术或逻辑操作,并将结果写回VGPR、SGPR或EXEC掩码。
Eloudy11 天前
gpu·arch
Scratch 内存参考:9.8. Scratch Space (Private) Scratch (thread-private memory) is an area of memory defined by the aperture registers. When an address falls in scratch space, additional address computation is automatically performed by the hardware. The kernel must prov
Eloudy15 天前
gpu·arch
全文 - Control Flow Management in Modern GPUs现代GPU中的控制流管理在GPU中,控制流管理机制决定了线程束(warp)中哪些线程在任意时刻处于活动状态。该机制通过监控线程束内标量线程的控制流来优化线程调度,对执行资源的利用率起着至关重要的作用。控制流管理机制可通过指令由软件控制或辅助实现,但GPU厂商通常不公开其编译器、指令集架构或硬件实现细节。这种透明度的缺失使得研究人员难以理解控制流管理机制的具体运作方式、硬件实现或软件辅助手段,尤其当该机制对其研究产生重大影响时,这一问题显得尤为关键。同时,这也为GPU性能建模带来困难——研究者只能依赖实际硬
Eloudy16 天前
gpu·arch·gem5
learning_gem5 part2_07 ARM 功耗建模可以对 gem5 模拟的能量和功耗使用情况进行建模和监控。这是通过使用 gem5 已经记录的各种统计信息,并在 MathExprPowerModel 中使用它们来实现的;MathExprPowerModel 是一种通过数学方程来模拟功耗的方法。本教程章节详细介绍了功耗建模所需的各个组件,并解释了如何将它们添加到现有的 ARM 模拟中。
Eloudy17 天前
gpu·arch
03章 内核状态 - “Vega“ 7nm Instruction Set ArchitectureReference Guide本章描述着色器程序可见的内核状态。3.1. 状态概览下表显示了着色器程序可读或可写的所有硬件状态【注,硬件状态寄存器】。
Eloudy18 天前
gpu·arch
02 程序组织 - “Vega“ 7nm Instruction Set ArchitectureReference GuideGCN 内核是由 GCN 处理器执行的程序。从概念上讲,内核在每个 Work-item 【注,cuda thread】上独立执行,但实际上 GCN 处理器将 64 个工作项分组为一个 Wavefront【注,cuda warp】,一次性在所有 64 个工作项上执行该内核。
Eloudy18 天前
gpu·arch
00前言 01 简介 - “Vega“ 7nm Instruction Set ArchitectureReference Guide本文档描述了 AMD GCN "Vega" 7nm 架构设备的环境、组织和程序状态。它详细介绍了该系列处理器可供程序员和编译器访问的指令集和微码格式。
Eloudy19 天前
gpu·arch·gem5
learning_gem5 part2_06 创建一个简单的缓存对象在本章中,我们将基于上一章创建的内存对象框架,为其添加缓存逻辑【注,仅缓存,单核cpu,不需要考虑 一致性】。
Eloudy19 天前
gpu·arch·gem5
learning_gem5 part2_08 ARM DVFS 建模与大多数现代 CPU 一样,ARM CPU 支持 DVFS(动态电压频率调整)。可以在 gem5 中对此进行建模,并监控由此产生的功耗使用情况。DVFS 建模是通过使用时钟对象的两个组件来实现的:电压域和时钟域。本章节详细介绍了这些不同的组件,并展示了将它们添加到现有模拟中的不同方法。
Eloudy21 天前
gpu·arch·gem5
一问理解 gem5 与 archmodel 和 cmodel 的关系gem5 是 arch model么?主要参与什么设计阶段呢?这是一个非常好的问题,它触及了 gem5 的核心定位。让我们来详细拆解。
Eloudy24 天前
gpu·arch·gem5
learning_gem5 part1_05 gem5 v24.1:使用 gem5 标准库配置脚本gem5 标准库的引入改变了编写 gem5 配置脚本的方式。下文 gem5 v21.0 章节中提到的许多旧版配置脚本现已被弃用,转而推荐使用位于 configs/example/gem5_library 的 gem5 标准库配置脚本。
Eloudy25 天前
arch·gem5
gem5 的统计包 和 API当前统计包的设计理念是拥有一个名为 Stat 的单一基类,该类仅仅是通往统计值其他所有重要方面的一个接口。因此,这个 Stat 基类包含虚函数,用于为所有统计值命名、设置精度、设置标志以及初始化大小。对于所有基于向量的统计,在使用统计之前进行初始化非常重要,以便进行适当的存储分配。对于所有其他统计,命名和标志设置也很重要,但对于二进制文件的正常执行而言,其重要性不如前者。在代码中,这是通过一个 regStats() 流程来实现的,在该流程中,所有统计都可以在统计数据库中进行注册和初始化。
Eloudy1 个月前
gpu·arch·gem5
learning_gem5 part1_04 理解gem5统计信息与输出文件除了模拟脚本自行输出的信息外,运行gem5后会在m5out目录下生成三个文件:config.ini:列出为模拟创建的所有SimObject及其参数值 config.json:内容与config.ini相同,但采用json格式 stats.txt:以文本形式记录所有已注册的gem5统计信息
Eloudy1 个月前
gpu·arch
全文 -- GPU-Initiated Networking for NCCLGPU-Initiated Networking for NCCL(面向NCCL的GPU主动网络技术)
Eloudy2 个月前
arch
x86虚拟化漏洞与硬件辅助虚拟化演进要点这里将深入解析x86架构最初的虚拟化漏洞,并总结后来发展的解决方案的要点。在讨论x86的虚拟化漏洞之前,我们首先需要理解虚拟化的基本要求。根据Popek和Goldberg的虚拟化需求,一个可虚拟化的架构必须满足: