自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 LiveInterval分析–以AMDGPU为例

本文分析了LLVM AMDGPU后端中的LiveInterval机制及其在寄存器分配中的应用。LiveInterval用于精确表示虚拟寄存器在程序时间轴上的活跃范围,通过SlotIndex时间轴上的半开区间实现。文章详细介绍了核心概念包括SlotIndex、LiveRange、VNInfo和LiveInterval,并通过示例说明了其工作原理。针对AMDGPU架构,重点分析了VGPR、SGPR和AGPR的LiveInterval特性,以及在寄存器分配流程中的关键作用。

2026-05-31 20:16:10 236

原创 SlotIndex机制--以AMDGPU为例

本文介绍了LLVM后端的SlotIndex机制及其在AMDGPU后端中的应用。SlotIndex为每条MachineInstr分配索引并划分内部slot,用于精确表示寄存器活跃范围。文章详细解释了slot类型和语义,以及SlotIndexes如何为指令编号。SlotIndexes通过半开区间表示寄存器活跃性与LiveInterval配合使用,对AMDGPU的寄存器分配、优化和调度至关重要。SlotIndex机制是LLVM后端寄存器活跃性分析的基础,对寄存器敏感的架构尤为关键。

2026-05-31 20:12:34 379

原创 AMDGPU后端RegMask使用介绍

摘要:本文详细解析了LLVM MI层RegMask在AMDGPU后端中的关键作用与实现原理。RegMask作为特殊操作数通过位图编码描述指令执行后保留的物理寄存器,主要用于call指令的寄存器活跃性分析。文章对比了RegMask与PEI/CSR的分工,阐述了AMDGPU如何从AMDGPUCallingConv.td定义生成RegMask,并通过getCallPreservedMask根据不同调用约定选择相应mask。

2026-05-26 23:09:39 440

原创 AMDGPU Device 函数传参详解

摘要:本文详细解析AMDGPU设备函数(__device__)的调用约定与参数传递机制。主要内容包括:1)区分Kernel与Device函数的不同ABI路径;2)详解CC_AMDGPU_Func传参规则和RetCC_AMDGPU_Func返回值约定;3)说明Callee-saved与Caller-saved寄存器划分;4)分析Clang前端的AMDGPUABIInfo分类规则;5)通过HIP/IR/汇编示例展示调用流程,并与x86-64 SysV ABI对比。适用于LLVM/AMDGPU后端开发及高性能计算

2026-05-24 12:59:05 435

原创 AMDGPU Kernel(Compute)传参详解

AMDGPU Kernel传参机制解析 本文详细分析了AMDGPU Kernel函数的参数传递机制,主要特点包括: 参数通过kernarg segment内存区域传递,由runtime写入,而非传统寄存器/栈方式 编译器负责计算参数偏移并通过kernarg指针加载到VGPR 与Device函数的关键区别在于调用约定(AMDGPU_KERNEL)和参数传递方式 参数布局遵循严格的对齐规则,大结构体通过间接指针传递 内核函数具有特殊的隐式参数(如workgroup ID)和SGPR分配机制 调试时可关注kern

2026-05-21 21:46:46 399

原创 AMDGPU 后端 ABI 总览

本文概述了AMDGPU后端ABI的关键要素,包括: ABI定义:规定了二进制层面函数调用约定、寄存器使用、栈管理和kernel与runtime交互方式,实现分散在多个LLVM组件中。 七大维度: 数据布局(多地址空间) 多种调用约定ID 参数/返回值传递规则 寄存器保存策略 特殊栈帧结构 寄存器约束 运行时要求 并行ABI体系: Compute Kernel使用kernarg buffer传递参数 Device函数采用VGPR/SGPR寄存器传递 图形着色器有专用约定 与x86-64 SysV ABI形成鲜

2026-05-20 21:04:17 442

转载 使用 Nginx 实现对 Milvus 的负载均衡

本文介绍了如何使用 Nginx 实现 Milvus 向量数据库的负载均衡方案。Nginx 作为高性能反向代理服务器,通过轮询策略将客户端请求分发到多个 Milvus 节点,从而提高系统并发能力和可用性。文章详细讲解了 Nginx 的安装配置步骤,包括依赖库安装、编译部署等过程。同时说明了如何配置 Milvus 分布式集群,包括设置读写分离节点和共享元数据存储(MySQL)。最后给出了 Nginx 的负载均衡配置示例,展示了如何将请求均匀分配到不同 Milvus 服务器。

2021-07-22 10:29:27 529

原创 HTTP与HTTPS协议介绍

HTTP HTTPS 网络协议

2016-12-14 09:21:42 1647

原创 Android 问题解决:Caused by: java.security.cert.CertificateException

SSL 认证 Caused by: java.security.cert.CertificateException

2016-11-30 22:39:44 7579

原创 多态基类声明virtual析构函数

virtual析构函数 C++多态

2016-10-28 09:21:48 385

原创 设计模式--适配器Adapter模式(结构性)

适配器模式 Adapter 设计模式

2016-10-25 09:35:29 437

原创 设计模式--桥接模式Bridge(结构性)

桥接模式 Bridge 设计模式

2016-10-18 20:06:45 576

原创 设计模式--观察者模式Observer(行为性)

观察者模式 Observer 设计模式

2016-10-12 22:33:06 667

转载 Android Studio系列教程--Gradle基础

Gradle AndroidStudio

2016-09-30 13:19:24 359

原创 设计模式--组合模式Composite(结构性)

组合模式 Composite 设计模式

2016-09-29 10:01:07 544

原创 设计模式--工厂模式Factory(创建型)

工厂模式 SimpleFactory FactoryMethod 设计模式

2016-09-22 23:06:16 387

原创 设计模式--原型模式Prototype(创建型)

原型模式 Prototype 设计模式

2016-09-20 09:26:46 749

原创 设计模式--单例模式Singleton(创建型)

单例模式Singleton 设计模式

2016-09-18 12:15:32 351

原创 Linux进程通信IPC--管道Pipe/Named Pipe

Linux 进程间通信 管道(Pipe)

2016-08-30 23:21:58 1137

转载 Android消息处理机制(Handler、Looper、MessageQueue与Message)

Android消息处理机制 MessageQueue、 Handler、Looper、Message

2016-08-25 19:41:00 391

原创 Boost Log库使用介绍

Log库 Boost C++

2016-08-23 19:54:47 1979

转载 谈谈Android里的Context的使用!

Android里的Context的使用    本文转载出处 :http://blog.youkuaiyun.com/qinjuning                  大家好,  今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中

2016-08-22 14:25:04 1009

原创 Linux so库查看工具

反汇编so库 Linux工具

2016-08-18 09:45:50 6802

翻译 Linux进程间同步--Named/Anonymous 同步机制

Linux 进程同步机制

2016-08-17 09:31:14 761

原创 Linux进程通信IPC--共享内存SharedMemory

进程间通信IPC Boost 共享内存

2016-08-11 22:58:11 696

原创 Linux进程通信IPC--消息队列MessageQueue

进程间通信IPC 消息队列 BOOST

2016-08-11 22:57:46 1665

翻译 字符集与编码

字符编码 Unicode

2016-08-11 19:35:55 350

原创 读写锁Read/Write lock 实现-- 使用Boost 库

读写锁 多线程

2016-08-04 20:12:26 4417

原创 Java log 如何获取Line、File等信息

JAVA NativeC++

2016-08-02 22:47:23 669

原创 std::thread 学习记录

std::thread, multi-thread, C++11

2016-08-02 20:25:41 482

空空如也

空空如也

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

TA关注的人

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