LLVM GPU
文章平均质量分 85
ZhiqianXia
记下工作&学习的点点滴滴
展开
-
LLVM AMDGPU 后端代码分析研究(4)AMDGPUAtomicOptimizer
1. 介绍在计算机并行计算领域,并行计算模型常分为以下四种情况:单指令单数据 (SISD)单指令多数据 (SIMD)多指令单数据 (MISD)多指令多数据 (MIMD)在GPU shader编程中,处理器会自动把shader转换为并行执行,如Pixel shader, 只需对一个像素点处理,GPU会对所有的像素做相同处理,这是一种隐式的SIMD,用户是无法控制的,在最新的DX12/Vulkan 图形API中,都加强了用户层代码对底层功能的控制能力,HLSL SM6.0 提供了一系列Wave操原创 2021-08-31 23:34:18 · 878 阅读 · 0 评论 -
LLVM AMDGPU 后端代码分析研究(3)AMDGPUFixFunctionBitcasts
1. 简介indirect-call 对后端芯片来说,是一件非常伤害性能的行为,它常出现在C++虚函数调用,GPU的subroutine. Compiler有一些算法就是想要减少indirect-call,具体可见参考文献1,AMD使用了下图第二种:Indirect Call Promotion.2. 源码跟踪&学习llc 命令:llc.exe -mtriple=amdgcn G:\Mesa3D_ws\llvm-11.0.0.src\llvm-11.0.0.src\test\CodeGe原创 2021-08-29 22:23:04 · 765 阅读 · 1 评论 -
LLVM AMDGPU 后端代码分析研究(1):PassPipe Line
本系列文章是对GPU LLVM后端的探索与学习,后端的学习资料主要有LLVM源码和公开的Spec. 众所周知,在PC GPU领域的玩家主要有三家公司:NV, AMD, INTEL. 在LLVM 后端开源的代码只有NV, AMD,而AMD相对NV的文档分享会更Open一些,比较容易找到它的Spec. 所以整个系统文章会以AMD的GPU作为研究目标,AMD 开源的代码对应的芯片有两款:R600 , GCN,后者是更新的架构. 以上是基本背景。1. Pass Pipeline通过llc工具,使用以下命令,跟踪原创 2021-08-28 22:51:55 · 2751 阅读 · 0 评论