自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ZhiqianXia

技术笔记

  • 博客(18)
  • 收藏
  • 关注

原创 图解 SPIRV 控制流

SPIRV 控制流解释

2022-06-14 15:56:46 461

原创 股权激励要点

2022-04-26 10:29:43 166

原创 编程流程与细节检查表

LLVM 编程工作流程

2022-04-26 10:02:19 175

原创 常用速查表

个人常用速查表

2022-04-26 09:38:03 1499

原创 环境搭建遇到的小问题与解决方案汇总

环境搭建vscode 安装:https://zhuanlan.zhihu.com/p/342467129 (主题修改+字体修改+C++配置)cmake 升级 : https://askubuntu.com/questions/355565/how-do-i-install-the-latest-version-of-cmake-from-the-command-line软件包换源:https://zhuanlan.zhihu.com/p/142014944补齐工具:https://zhuanlan

2022-04-26 09:29:32 1153

原创 DX12 图形学知识 (1) : Sampler Feedback && Texel Space Shading

1. 前言HLSL SM6.5 引入了一个新Feature, 叫Sampler Feedback, 它可以让硬件还回一些采样信息,软件可以使用这些采样信息做一些文章,场景有两个:streaming and texture-space shading, 本文主要介绍后者Texel Space Shading,同时拟解决以下三个问题:问题1:硬件传回了什么信息?问题2:软件怎么控制?问题3:texture-space shading 算法如何使用这个信息?参考资料https://microsof

2021-09-12 11:14:45 1111

原创 DirectX-Specs 学习系列 (1) :HLSL Shader Mode

Mark

2021-09-05 10:04:08 1097

原创 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 956

原创 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 855 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 2923

原创 Mesa3D Windows 环境搭建

缘起在一个无聊的周末,想看看开源Mesa3D的编译器&驱动软件的设计,个人认为通过下断点,看callstack的方式学习,比纯源码的方式效率更高,所以想做一个基于Vs2019学习环境,mesa3d主要是使用在linux的图形子系统中,官网对Windows平台的build步骤不太友好,通过参考 fdossena大佬添加链接描述外加各种折腾,终于把opengl编程指南的demo跑起来了,本文记录这个过程。以下几个坑位请提前注意:fdossena 文章中描述的是mesa-19.1.5使用scons

2021-08-15 10:48:01 3619 4

原创 C++ 开源项目清单

从开源代码的学习中发现,优秀的项目除了开源代码以外,还有需要很多的支撑文件,包括Build, Test, CI/CD, 文档等等。C++ 开源项目清单软件主体源代码软件构建cmakelist.clang-formatexternal & gitmodules 设计build script软件测试CI/CDtest & googletestbenchmark软件自述文件LicenseReadme文档...

2021-08-15 09:58:57 198

原创 Infrastructure Working Group 日记 (1)

1. The infrastructure of the LLVM project● source code repository● bug tracker● all build servers/machines● all web sites● build system/scripts● code review tool● mailing lists● internet forum● chat (IRC and discord)● Documentation of the tools a

2021-01-24 21:16:35 98

原创 2019 Bay Area LLVM Developers‘ Meeting - Talk Abstracts Program with Talk Abstracts

文章目录1. Keynote Talks1.1 Generating Optimized Code with GlobalISel Volkan Keles, Daniel Sanders1.2 Even Better C++ Performance and Productivity: Enhancing Clang to Support Just-in-Time Compilation of Templates Hal Finkel2. Technical Talks2.1 Using LLVM's p

2021-01-09 17:52:49 2007

原创 数据流分析总结

本文旨在总结常见数据流分析:活跃性(liveness)分析,常用表达式(Available Expressions)分析,very busy 表达式(VeryBusy Expressions)分析,定值到达(Reaching Defs)分析。数据流分析数据流分析是编译器,程序分析,垃圾回收等技术的公共基础,数据流分析的直觉感受可以认为是,在程序的控制流图上(CFG),将每条语句视为CFG上的...

2020-12-15 12:27:52 2712 1

原创 减少大规模软件系统编译时间的方法

方法1. Impl设计模式要点:在组合类Imple中,让它包含BasicBase的指针,并使用前置声明,而不是直接include BasicBase的头文件,即使BasicBase的定义有修改,也不会让Imple再次编译。代码示例// Imple.hclass BasicBase; // 前置声明,不需要访问Basic的定义 class Imple{ BasicBase *m_base; // (1) 指针或引用 BasicBase PrintBase(BasicBase base);

2020-06-29 21:59:41 1091

原创 LLVM PASS 分析【1】:Rotate Loops

1. Introduction2. 源码分析2.1 初始化代码在这里插入代码片

2020-03-05 09:24:12 2071 1

原创 LLVM Pass 分析【2】:Loop Invariant Code Motion

循环不变量(Loop Invariant Code Motion)循环不变量(loop invariant)就是不会随着每轮循环改变的表达式,优化程序只在循环体外计算一次并在循环过程中使用。编译器的优化程序能找出循环不变量并使用“代码移动(code motion)”将其移出循环体。源码#include <stdio.h>#include <stdint.h>#...

2019-08-10 21:09:28 1587

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除