自定义博客皮肤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

技术笔记

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

原创 CUDA编程中影响正确性的小细节总结

通过关注这些细节,可显著减少CUDA程序中的错误并提升性能。

2025-04-19 21:03:47 1001

原创 CUDA编程中影响性能的小细节总结

通过结合具体场景分析(如矩阵计算、图像处理、深度学习)选择优化策略,并利用性能分析工具验证改进效果。

2025-04-19 20:53:43 594

原创 CUDA Tools 常用命令总结与记录 (需要细化)

以下是对。

2025-04-19 20:34:54 479

原创 DeepSeek 教我 C++ (9) :std::byte使用场景

使用std::byte的核心目的是明确表达原始二进制数据的语义,同时通过类型系统避免误操作。在需要处理底层内存、二进制流或类型安全的字节操作时,它是更现代、更安全的选择。

2025-04-15 09:58:14 757

原创 Build a Debugger (2) : software / hardware breakpoints 区别

软断点与硬件断点的主要区别体现在实现方式、功能支持及适用场景等方面。理解两者的区别有助于在复杂场景(如逆向工程、驱动调试)中灵活选择工具,提升调试效率。

2025-04-14 15:40:51 307

原创 Build a Debugger (1) : ptrace

系统调用是一个强大的工具,允许一个进程(跟踪者)监视和控制另一个进程(被跟踪者)的执行。它广泛应用于调试器、动态分析工具和沙盒环境。,开发者可以实现调试器、动态二进制插桩等高级工具,但其复杂性要求深入理解进程控制和信号处理机制。

2025-04-14 13:55:11 641

原创 DeepSeek 教我LLVM(2) : MCTargetDesc 核心模块有哪些?

在 LLVM 中,MCTargetDesc(Machine Code Target Description)是描述目标架构机器代码生成的核心模块,其核心组件可分为以下几类:MCInstrInfoMCRegisterInfoMCSubtargetInfoMCCodeEmitterMCDisassemblerMCAsmBackendMCAsmInfoMCObjectFileInfoMCInstPrinterMCSymbol 与 MCContext代码生成反汇编MCTargetDesc 的核心模块围绕以下目标展开

2025-04-11 16:10:07 232

原创 DeepSeek 教我 LLVM (1):汇编器中的Fixup 概念是什么?

它通过记录需要修正的位置和类型,支持跨模块符号引用、动态地址计算和指令优化(如分支松弛),最终通过重定位确保生成正确的可执行代码。理解 Fixup 是掌握 LLVM 汇编器和目标文件生成原理的关键。当生成机器代码时,某些指令的操作数(如跳转目标地址、数据符号的偏移量等)可能在汇编阶段无法确定(例如,符号可能位于其他模块或需要链接时才能确定)。,标记这些需要后续修正的位置,并在最终生成目标文件时完成地址计算或重定位。在 LLVM 的 MC(Machine Code)层中,(修复项)是用于处理。

2025-04-11 15:55:51 911

原创 如何在幽默的团队氛围中生存?

除了假装咳嗽之外,也可以假装系鞋带,如果自己穿的是运动鞋,那简直是天助你也,在蹲下来的时候,注意管理好自己的表情,不然人家会认为你对着鞋带傻笑。在有些场合,露出笑容,可能是一件非常不礼貌的行为,此时可以稍微低下头,不让对方看到自己的表情,同时自己注意自己的面部管理,好好调整一下。实在憋不住了,也可以假装咳嗽,可以捂嘴咳嗽,但是在咳嗽的时候,也会吸引大家的注意力,此时大家就要注意咳嗽完后,表情要处理好。除了掐手之外,也可以咬自己的嘴唇,但是注意不要太用力了,要是出现伤口,也是会影响自己的外观形象的。

2025-04-10 16:40:25 107

原创 职场小技巧(2):非暴力沟通的方法

对待正常人,就尽力使用正常人的沟通方法,非暴力沟通(Nonviolent Communication, NVC)是一种通过同理心、诚实表达和倾听来化解冲突的沟通方法,由心理学家马歇尔·卢森堡提出。非暴力沟通不是“忍让”,而是通过诚实和同理心建立深层连接。初期练习可能生硬,但熟练后会发现,大多数冲突都源于未被听见的“求救信号”。当对方用指责或抱怨表达时,尝试。

2025-04-07 09:09:35 269

原创 DeepSeek 教我 C++ (8) :C++ 静态类型不安全的情况

C++ Core Guide P.4 Guide 我们要保证C++ 程序的类型静态安全性,我请教了一下DeepSeek大佬.

2025-04-06 16:15:34 975

原创 DeepSeek 教我 C++ (7) :常见的一些未定义UB

在ISO C++标准中,未定义行为(Undefined Behavior, UB)可能导致程序行为不可预测,且这类问题往往难以调试。

2025-04-06 15:37:35 772

原创 CUDA 技术(1) Host Interception

它通过拦截应用程序的底层系统调用、API调用和线程活动,收集详细的执行信息,以便将CPU与GPU活动关联分析。Host Interception 是Nsight Systems实现细粒度性能分析的基础,通过精准控制拦截范围和模式,开发者可以高效定位CPU-GPU协作瓶颈。A:Nsight Systems 默认仅拦截常见高性能计算相关API,需通过插件或自定义配置扩展拦截范围。A:通常无功能影响,但可能因拦截逻辑轻微改变执行时序(对多数性能分析可忽略)。

2025-04-06 15:05:28 896

原创 Lecture 44: NVIDIA Profiling (未完)

一个CUDA 大佬分享给我一个视频,花点时间消化一下.

2025-04-06 10:22:17 750

原创 我亲眼看到的职场有感

年轻的时候,总是不相信网上讲的故事,事实上,人性是永远不会变.

2025-04-06 09:52:13 297

原创 CUDA && GPU 学习资源

Discord Channel: https://discord.com/invite/gpumodeYouTube Channel: https://www.youtube.com/@GPUMODEGitHub Repository: https://github.com/gpu-mode/lectures/tree/main/Textbook: https://www.amazon.com/Programming-Massively-Parallel-Processors-Hands/dp/0

2025-04-06 09:33:46 198

原创 DeepSeek 教我 C++ (6) : C++17 filesystem 的技巧

C++ 是个人最常用的编程语言,以前学生时代好多笔记都丢失了,想用DeepSeek帮忙快速整理一些编程细节,看看有没有没看到过的解释.,可以轻松实现跨平台(Windows/Linux/macOS)的文件系统操作!提问:整理一下C++ 17 filesystem 常用方法。

2025-04-03 14:26:58 1482

原创 计算机体系结构的性能瓶颈100例

性能瓶颈贯穿计算机系统的各个层级,需通过硬件设计优化(如增加缓存容量)、软件算法改进(如减少分支)、系统调优(如NUMA绑定)等手段缓解。实际场景中需结合性能分析工具(如perf、VTune)定位具体瓶颈。

2025-03-28 17:43:52 736

原创 DeepSeek 教我 C++ (5) : C++ 位操作的技巧

C++ 是个人最常用的编程语言,以前学生时代好多笔记都丢失了,想用DeepSeek帮忙快速整理一些编程细节,看看有没有没看到过的解释.

2025-02-16 14:45:43 408

原创 DeepSeek 教我 C++ (4) : 对象参数传递应该注意的小细节

C++ 是个人最常用的编程语言,以前学生时代好多笔记都丢失了,想用DeepSeek帮忙快速整理一些编程细节,看看有没有没看到过的解释.

2025-02-16 14:13:15 268

原创 DeepSeek 教我 C++ (3) : Optional / Variant 使用的应该注意的细节

C++ 是个人最常用的编程语言,以前学生时代好多笔记都丢失了,想用DeepSeek帮忙快速整理一些编程细节,看看有没有没看到过的解释.

2025-02-16 13:25:01 446

原创 DeepSeek 教我 C++ (2) : String 使用应该注意的小细节

C++ 是个人最常用的编程语言,以前学生时代好多笔记都丢失了,想用DeepSeek帮忙快速整理一些编程细节,看看有没有没看到过的解释.

2025-02-16 12:52:43 167

原创 DeepSeek 教我 C++ (1) : Class 设计应该注意的小细节

C++ 是最常用的编程语言,以前学生时代好多笔记都丢失了,想用DeepSeek帮忙快速整理一些编程细节,看看有没有没看到过的解释.

2025-02-16 10:04:01 255

原创 CppCon 2023 演讲总结 (3) :Algorithms in C++

在AI时代,大模型降低了软件开发的门槛,开发者不需要太多的系统级知识和内化思维,提出问题让AI即可生成代码与答案,项目开发速度越来越快,软件开发的乐趣越来越少了,职场逐渐内卷化,打算在2025年听一些C++国际会议报告,拓宽眼界,提高品位,找回初心.“内卷”(involution)一词最初源于社会学领域,用来描述一种社会或文化模式在发展到一定阶段后停滞不前、无法转化为更高级形态的现象,反而在内部不断复杂化、精细化,导致非理性的竞争加剧。真正的大师,永远怀着一颗学徒的心.

2025-02-07 19:40:38 415

原创 CppCon 2023 演讲总结 (1) :Getting Started with C++

C++ 2023 会议总结

2025-02-05 10:23:04 756

原创 DeepSeek 学习笔记 (1)

DeepSeek 在这个春节大放异彩,横扫朋友圈和长辈酒局,一起来学习一下,打算体验一下用DeepSeek 学习DeepSeek, 玩一把 “自举”.

2025-02-03 09:29:09 752

原创 rocgdb 调试器之旅(1):开箱

调试是软件开发的元技能,是区分菜鸟与老手的一个技能,异构编程模型的构建,除了编程语言/编译器核心组件的定义,为用户提供有效/犀利的调试工具,也是重要的工作之一.本系列博文将整理探索过程中一系列有趣的信息.

2025-01-19 14:16:10 195

原创 图解 SPIRV 控制流

SPIRV 控制流解释

2022-06-14 15:56:46 511

原创 股权激励要点

2022-04-26 10:29:43 210

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

LLVM 编程工作流程

2022-04-26 10:02:19 222

原创 常用速查表

个人常用速查表

2022-04-26 09:38:03 1584

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

环境搭建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 1194

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

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

Mark

2021-09-05 10:04:08 1311

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

原创 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 976 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 4282

原创 Mesa3D Windows 环境搭建

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

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

原创 C++ 开源项目清单

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

2021-08-15 09:58:57 224

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

LLVM MachineScheduler UML 图

LLVM MachineScheduler UML 图

2024-11-14

空空如也

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

TA关注的人

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