自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

头狼博客

计算机专业学习

  • 博客(98)
  • 资源 (1)
  • 收藏
  • 关注

原创 [python] AST语法树来加速大量库文件和注册的加载以及审查

在 Hermes Agent 这种高频、高可信度 AI 执行环境中,ast是一把**“在不实际运行代码的前提下,精准看穿代码意图、检测代码漏洞与语法缺陷”**的瑞士军刀。极速、安全、无副作用。

2026-05-25 21:47:08 450

原创 [Python] Python中自带模块级的单例模式-不需要定义单例类

不可变正则常量:是好的、符合 Google 规范的做法。可变全局缓存不符合 Google 规范,在并发、测试、多 Profile 场景下存在隐患。建议:在未来系统规模扩大、引入更多并发或需要支持更严格的多 Profile 隔离时,应该将这些全局状态重构为类实例(Class Instance Properties / Objects )或上下文环境对象(Context Objects)。需要单例的行为(保证缓存只被加载一次,全局共享)。不需要严格的单例限制(强行拦截__new__最佳实践。

2026-05-24 17:46:00 448

原创 ACP:Agent-Client-Protocol 详解

ACP协议核心摘要 ACP(Agent Client Protocol)是AI代理领域的标准化通信协议,类比LSP在语言服务器中的作用。该协议基于JSON-RPC 2.0和stdio标准输入输出,规范了IDE/客户端与AI编码代理之间的交互方式,解决了生态碎片化问题。 核心特点: 采用父子进程通过stdin/stdout通信,避免网络相关复杂度 定义三种消息类型:请求(Request)、响应(Response)和通知(Notification) 标准工作流程包括初始化握手、会话管理、流式输出和权限控制等环节

2026-05-13 16:04:14 929

原创 [python] python实现类的函数重载机制-@dispatch

摘要:@dispatch装饰器来自plum库,为Python提供多重派发能力,解决原生不支持函数重载的问题。它通过参数类型注解自动匹配调用对应的重载方法,允许多个同名__init__共存,需用# type: ignore[no-redef]避免mypy报错。相比手动isinstance判断的分支写法,@dispatch更声明式但需第三方依赖。该技术在几何消息类(Pose/Vector3等)中用于支持多种构造方式,如无参构造或指定坐标构造等。

2026-04-19 00:16:03 255

原创 [python] asyncio常规操作记录

Python asyncio 并发原语摘要 本文介绍了Python asyncio的核心并发机制和API: Event Loop是单线程调度器,通过轮询就绪事件和回调实现协程并发执行 三种核心API对比: create_task():同一loop内并发调度协程 to_thread():将阻塞函数移入线程池执行 run_coroutine_threadsafe():跨线程向指定loop投递协程 相关APIcall_soon_threadsafe用于跨线程投递回调函数 通过表格对比了各API的调用位置、投递目标

2026-03-20 12:13:32 392

原创 [架构设计] Dependency-injector 使用

这篇教程详细介绍了Python中的依赖注入(DI)技术。文章首先阐述了DI的核心设计逻辑,即通过控制反转(IoC)将对象创建的控制权从内部转移到外部容器,解决传统硬编码依赖带来的耦合问题。然后详细讲解了dependency-injector库的实现原理,包括Provider、Container和Wiring三个关键概念。教程提供了从安装到基础用法的完整指南,展示了多种Provider类型(Singleton、Factory等)的使用场景,并介绍了四种配置注入方式(字典、YAML、环境变量、.env文件)。通

2026-03-18 18:43:51 328

原创 [架构设计] 依赖注入优于单例模式

本文档解释了为什么在现代软件设计中依赖注入优于单例模式,并提供了基于 Robot项目的 Python 实践示例。"""机器人接口,用于依赖注入"""@property"""检查机器人是否正在执行动作"""...@property"""获取当前动作名称"""..."""连接机器人"""..."""断开机器人连接"""..."""执行机器人动作"""...✅ 可测试性:容易注入模拟对象✅ 灵活性:运行时决定使用哪个实现✅ 解耦:组件不知道具体实现✅ 线程安全:没有全局状态。

2026-03-18 16:19:41 279

原创 [架构设计]多模块共享状态时不是只有单例

本文探讨了共享状态管理的优化方案,针对单例模式导致的模块紧耦合问题提出了两种替代方案。事件驱动模式通过发布-订阅机制实现模块解耦,包含事件总线和状态管理器组件,支持异步操作和历史追踪,但可能存在事件链复杂问题。协调服务模式则采用集中式资源锁管理,通过资源枚举和锁机制协调共享资源访问。两种方案均解决了单例模式的测试困难、状态追踪和线程安全问题,为系统模块间的状态共享提供了更灵活、可维护的架构选择。

2026-03-18 16:18:37 368

原创 [架构设计] pypubsub 底层实现机制与高性能替代方案

本文分析了 pypubsub 的底层实现机制,并提出了两种高性能替代方案。pypubsub 采用纯 Python 实现,基于主题树结构和弱引用列表存储订阅者,但存在同步阻塞、无优先级和无并发等问题。文章提出了两种改进方案:1) 异步事件系统,支持同步/异步处理器和并发执行;2) 基于队列的解耦系统,采用线程池和优先级队列实现高效事件处理。两种方案均能显著提升性能,解决原生 pypubsub 的局限性。

2026-03-18 16:11:35 412

原创 [C++] traits机制

这些is_xxx的函数,如何定义的; 有什么可以学习的点std::enable_if::type的使用c++的原则就替换失败并非错误(SFINAE)。std::enable_if 就是满足条件时类型是有效的所谓的SFINAE规则就是在编译时进行查找替换,对于重载的函数,如果能够找到合适的就会替换,如果第一个不合适并不会报错,而会使用下一个替换直到最后一个,如果都不满足要求,那么才会报错。出现二义性的话也会报错。主要两个应用类型判断,可以自定义类型判断返回值指定,根据输入类型判断返回值

2025-06-21 17:46:20 1102

原创 [CUDA] CUDA 编程总汇

CUDA编程一些doc说明

2025-06-21 17:44:57 1115

原创 [CUDA] cuda的一些实用工具

本文介绍了两种GPU数据打印工具和性能分析工具。打印工具包括直接在GPU上打印数据的CUDA模板函数和将数据传回CPU打印的方法。性能分析部分详细介绍了NSight System和NSight Compute的使用:NSight System用于可视化性能报告,可分析stream调用、内存泄露和函数并行性;NSight Compute则专注于CUDA内核的详细性能指标分析。文章还提供了启动/停止评测的脚本方法,适合对大型应用进行分段性能分析。这些工具能有效帮助开发者调试GPU程序和优化性能。

2025-06-21 17:43:08 1101

原创 [CUDA] cub库的使用

CUB(CUDA Unbound)是NVIDIA提供的高性能并行计算组件库,主要针对CUDA编程模型各层级(Warp/Block/Device)提供可复用的集合操作,包括排序(BlockRadixSort)、选择(DeviceSelect)、规约(reduce/scan)等核心功能。其特点如下: 分层设计:支持Warp-wide、Block-wide和Device-wide三个级别的并行操作,例如BlockRadixSort需配合BlockLoad/Store处理数据补齐问题。 典型应用场景: 非零元素提取

2025-06-21 17:42:01 1597

原创 [Python] Python中的多重继承

多重继承的写法

2025-06-01 23:46:36 352

原创 [AI算法] 什么事RoPE scaling

RopeScaling技术通过频率缩放扩展Transformer模型上下文长度,其中Dynamic NTK-Aware Scaling和YaRN是主流方法。Dynamic NTK基于神经切核理论动态调整RoPE频率参数

2025-06-01 17:18:47 1558

原创 [AI算法] LLM中LoRA的占用显存没有减少多少?

LoRA微调方法虽能减少参数数量,但显存占用仍较高,主要原因是计算图完整构建导致中间特征无法及时释放。LoRA输出特征图与原始模型大小相同,需参数融合送入后续计算。相比之下,torch.no_grad最节省显存(不构建计算图),requires_grad=False仅停止梯度回传,而eval()模式会影响BN/Dropout层行为。这些差异导致显存优化效果不如预期。

2025-06-01 16:27:44 611

原创 [AI算法] LLM中的gradient checkpoint机制

梯度检查点(Gradient Checkpoint)是一种深度学习显存优化技术,通过在训练过程中选择性保存中间激活值来降低内存消耗。该技术以Transformer Block为单位,仅保存输入输出,在反向传播时重新计算中间结果,从而大幅节省显存占用。适用于训练大型模型、增加批处理尺寸或深层网络(如Transformer)等场景。但需注意该技术会因重复计算而延长训练时间,且可能与其他优化方法存在兼容性问题。实际应用中建议先进行有效性测试。

2025-06-01 16:18:38 741

原创 [AI算法] LLM训练-构建transformers custom model

主要是如何写一个符合transformers的model

2025-05-16 16:18:45 724

原创 [AI 算法] PointPillar算法

pointpillar最主要的特点是检测速度和精度的平衡1. 研究出发点现有的一些研究喜欢将不规则、稀疏的点云数据按照以下两种方式进行处理,然后引入RPN层进行3D Bbox Proposal,这两种方法为:(1)将点云数据划纳入一个个体素(Voxel)中,构成规则的、密集分布的体素集。常见的有VoxelNet和SECOND,这在之前的文章中已经解析过了;(2)从俯视角度将点云数据进行处理,获得一个个伪图片的数据。常见的模型有MV3D和AVOD,这也说过了。. 主要是将点云透射到俯视图上,然后

2025-02-12 11:40:19 549

原创 [LLM] LLM性能的衡量指标有哪些?

介绍LLM的一些衡量指标的作用和原理,以及应用场景

2025-02-10 10:53:08 1248

原创 [AI算法-激光感知] 激光点云分割系列-Multi-View系列

主要整理多种视图融合的点云语义分割架构paper

2025-02-08 17:51:34 659

原创 [AI算法-激光感知] 激光点云物体检测-PointView系列

主要介绍Point-Based的语义分割系列算法,以及这方面算法主要的一些核心

2025-02-08 17:34:36 809

原创 [AI算法-激光感知] 激光点云分割系列-PointView系列

主要介绍一些Point-Based的点云分割模型

2025-02-08 10:20:47 798

原创 [C++] pthread and std::thread区别

pthread和std::thread的一些基本区别

2025-02-05 15:50:43 502

原创 [PCL] pcl 可视化工具viewer使用

【代码】[PCL] pcl 可视化工具viewer使用。

2025-01-23 14:22:18 1258

原创 [AI部署-tensorRT] customlayer定义添加过程解析

基于tensorRT开发plugin过程

2025-01-15 14:57:56 859

原创 [CUDA] gemm优化之mma

主要说明cuda gemm中使用mma的两个方式

2025-01-15 14:54:48 841

原创 [CUDA] cuda开发之misalign address问题

cuda申请过程中首地址对齐问题

2025-01-15 14:49:18 507

原创 [CUDA] cuda编程实践汇总

cuda编程实战: 用于总汇所有cuda优化和开发相关的知识记录

2025-01-15 14:44:24 880 1

原创 [算法基础] hash算法

主要讲解目前主流的一些hash算法和应用场景

2025-01-15 14:26:04 967

原创 [C++] perf工具评测耗时

perf对一些应用的监控使用记录

2024-12-09 15:50:06 607

原创 [pytorch|AI算法] 用mpirun同时跑多个模型推理

用mpirun 并行多个model,在8卡上进行同步推理,增加gpu使用率

2024-12-09 15:36:06 621

原创 [CUDA] 编译调试工具objdump使用查看某些cuda函数汇编代码

调研cublas等cuda库函数的一些底层代码实现逻辑,通过汇编逻辑来看具体实现,推断可能的耗时异常原因

2024-12-09 14:54:56 520

原创 [CUDA] cuda程序编译注意事项

cuda的一些编译问题的记录

2024-11-11 22:45:00 494

原创 [CUDA] cuda kernel开发记录

包括kernel的一些使用注意事项, launch_bound, __device__, debug排查技巧

2024-11-11 20:45:00 1482

原创 [CUDA] 设置sync模式cudaSetDeviceFlags

可以设置cuda Stream synchorinze时是释放cpu资源还是把持cpu资源;根据官方说明默认当gpu 个数大于cpu的时候,因为cpu紧张所以会yield时间片;cuda的 synchronize等待模式分为: Yield方式, busy waiting方式(spin), blocking方式。- gpu context切换更加频繁了,应该是block阻塞导致的。- block恢复存在延迟,导致一些空白gpu时间,如下图红色框。采用blocking模式后,nsight观察的现象有几个。

2024-11-07 20:01:19 1312

原创 [CUDA] 将已有的地址空间设置为pinned memory

使用cudaHostRegister将已有的地址空间设置为pinned memory。

2024-11-07 19:50:05 953

原创 [CUDA] 判断一个指针是GPU还是CPU

如何判断地址是device的还是host的?

2024-11-07 19:42:39 751

原创 [CUDA] launch_bounds的使用记录

记录cuda kernel中使用的launch bound的作用和使用方式

2024-11-07 19:37:30 993

原创 [C++] GDB的调试和自动化检测

gdb的一些基本使用说明

2024-11-06 15:52:28 951

BIOS和DOS中断大全

非常全面的DOS和BIOS中断功能描述,

2013-04-20

空空如也

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

TA关注的人

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