- 博客(191)
- 收藏
- 关注
原创 PyTorch Dispatcher介绍
PyTorch中的Dispatcher(调度器)是内核层的核心算子调度中枢,是连接上层算子API和下层不同实现的路有组件,负责根据输入的特征自动选择最合适的算子执行逻辑,是PyTorch兼容多设备、多特性的核心支撑。
2026-03-30 16:38:20
276
原创 pytorch custom op的简单介绍
是pytorch中用于封装自定义CUDA算子的装饰器,功能是将底层注册到torch.ops的算子()绑定到这个python函数。表示算子不修改输入参数;限定仅支持CUDA设备。
2026-03-23 11:28:04
284
原创 异步、同步简单介绍
模型的generate函数(在GPU上执行计算)要等很久,如果用同步,CPU就会干等着浪费资源;用异步的话,CPU就可以去处理别的请求。所以底层必须异步,才能高效、高并发。异步是你先忙你的,我去干别的,等你好了叫我:用户调用一个函数,不用等它做完,可以先去做别的事情,等它好了再回来拿结果。同步是你干完,我才干:用户调用一个函数,必须等它执行完返回结果,才能继续往下走;
2026-02-28 17:58:09
45
原创 二极管、三极管、CMOS
电容的原理,简单来说,就是在中间绝缘的两个金属板上施加电压。在正极连接的金属板上,会大量聚集正电荷,负极板上聚集负电荷,如下:如果把负极的金属导体换成半导体,把电容类似的原理用于场效应管,可行吗?
2025-12-29 16:42:37
941
原创 Hydra介绍
是由Facebook开发的Python管理配置框架。解决问题:普通python脚本使用argparse处理命令行参数,仅支持简单的扁平参数(如),对于多层嵌套参数、多配置文件组合、动态参数覆盖、配置自动保存等复杂场景,argparse难以支持。Hydra正是为解决这些痛点而生。
2025-12-20 23:52:13
423
原创 什么时候会用到python -m
是“模块运行模式”,无需关心当前工作目录,只要项目根目录在python的。(前提是加入PYTHONPATH中了)作为模块根目录,自动识别。例如上面的项目中,若在根目录myproject/下,执行。中,即可直接运行后面跟的模块,比直接执行。文件更灵活,尤其适用于多目录结构的项目。,因为python会将脚本所在目录。运行,python会将当前执行目录。作为默认根目录,无法识别上层。包,完美解决跨目录导入问题。
2025-12-20 23:24:26
197
原创 torch.distributed.launch介绍
可用于单节点分布式训练,其中每个节点可启动一个或多个进程;也可用于多节点分布式训练,每个节点同样可以启动一个或多个进程。是pytorch用于分布式训练启动和管理的模块,
2025-11-14 09:54:13
740
原创 fire.Fire()、argparse、HfArgumentParser
是python标准库自带的命令行参数解析工具,需要用户手动声明参数的名称、类型、默认值、帮助信息等,解析逻辑完全由用户控制,步骤繁琐但灵活。,就会自动将其转换为命令行接口(CLI),参数由函数/类的参数自动推导。是Google开源的库,无需手动定义参数,只需要将函数、类或对象传给。
2025-11-13 10:05:54
160
原创 偏应用实例
偏应用”(Partial Application)是函数式编程的概念,核心是固定一个函数的部分参数,生成一个新的可调用对象。这个新对象就是“偏应用实例”。它的本质是:不改变原函数/类的逻辑,只是提前“冻结”部分参数,后续调用时只需传入剩余未固定的参数,从而简化重复调用的流程。这行代码返回的就是一个。
2025-10-21 17:22:48
160
原创 *args, **kwargs的用法
args, **kwargs是python中用于灵活传递参数的语法,作用是“接收不确定数量的额外参数”,以适配函数可能需要的多种输入场景。必须在所有显式参数后。显示参数匹配完后,剩下的“无参数名”的位置参数,全部归。实际使用时,直接传入值、不指定参数名的参数,会被。剩下的“有参数名”的关键字参数,全部归。形式指定参数名的参数,会被。
2025-10-17 09:49:53
216
原创 FastV: An Image is Worth 1/2 Tokens After Layer 2
如下图所面所示的结果,我们可以看到如果选择在第2层filter out 50%的image tokens,我们就减少了52%的flops,而模型的输出完全一致;如果选择在第5层filter out 75%的image tokens,我们就减少到38%的flops,模型的输出还是一样;如果选择在第2层filter out 75%的image tokens,模型的输出就会受到影响了。如下图所示,我们需要在第K层后添加一个filter层,将不重要的tokens去掉,然后再接着下一层。更详细的数据对比如下表所示。
2025-08-17 10:05:37
498
原创 相对熵与KL散度
熵(Entropy)是一种度量系统不确定性的量,反映了信息的随机性。相对熵(Relative Entropy),也称熵差(Entropy Difference)或KL散度(Kullback-Leibler Divergence),是度量两个概率分布之间差异的量。相对熵的大小即反映了两个分布之间的差异。当相对熵取到最大值时,两个分布完全不同;当相对熵为0时,两个分布完全相同。
2025-07-31 15:10:08
1205
原创 多线程编程、异步函数+多线程编程
线程在执行过程中与进程还是有区别的。每个独立的进程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。每个线程都有他自己的一组CPU寄存器,称为线程的上下文,该上下文反映了线程上次运行该线程的CPU寄存器的状态。指令指针和堆栈指针寄存器是线程上下文中两个最重要的寄存器,线程总是在进程得到上下文中运行的,这些地址都用于标志拥有线程的进程地址空间中的内存。
2025-07-28 11:19:34
399
原创 存算一体简单介绍
传统的计算机架构,数据存储和计算是分开的,数据在存储器和处理器之间频繁的传输导致了延迟。在此背景下,将存储和计算功能融为一体的存算一体芯片应运而生。
2025-06-29 19:24:28
1489
原创 interconnection
ON)ON2)ON2)N2ONlogN)OlogN)ON)ON)ON)OsqrtN))OlogN)ONlogN)OlogN。
2025-01-07 12:58:02
794
原创 Ch1:古今的manipulation与仿真、ROS和Drake介绍
且模拟接触行为的质量和性能也大大提高(这方面的模拟主要是靠复杂的geometry queries和stiff (measure-)微分方程),虽然目前在控制方程的数值求解方面仍有改进空间,但现今的求解器已经足够好用了。各章节按照整个manipulation任务中不同的building blocks组件进行讲述,涵盖计算机视觉、动力学和控制学等的领域知识,本课仅介绍各领域与manipulation最相关的idea。且支持可重复的确定性仿真。会讲相关的机器人硬件、仿真这些硬件的细节,以及几何和动力学基础。
2024-12-09 18:56:27
1322
原创 主存储器组织
2nTATMCTMCTA4M×4211×211×4512×512×8256K×82Mb16×8128812816MB212×212×88×4096327683×64b192b××。
2024-11-11 17:07:59
1512
原创 LangSplat和3D language fields简略介绍
LangSplat相关技术拆分解释:3dgs:伟大无需多言SAM:The Segment Anything Model,是图像分割领域的foundational model,已经用在很多视觉任务上(如图像修复、物体追踪、图像编辑等),以及用在3D领域中,后者相关工作如:Seal:将包含SAM的VFMs用于点云分割SA3D:将SAM泛化到3D物体本篇:使用SAM得到物体掩码以及3个hierarchical semantics,进而训练一个3D language field3D Lang
2024-10-19 05:16:13
1882
原创 计算机体系结构量化研究方法 -- Pipelining: Basic and Intermediate Concepts
那么延迟槽的内容是什么呢?最好是执行一些无论分支成功失败都要执行的指令,最好与分支并不相干。
2024-10-15 08:16:32
1047
原创 李飞飞 - World Labs
要超越当今模型的能力,我们需要具备空间智能的AI,它能够在三维空间和时间中对世界进行建模,并对物体、场所和交互进行推理。目的是开发出能够利用图像和其他数据对三维世界做出决策的软件,从而构建所谓的“大型世界模型”:“将AI模型从2D像素的平面提升到完整的3D世界,包括虚拟世界和现实世界,以赋予这些模型如同人类般丰富的空间智能”最终,这项技术将涵盖机器人和制造业等领域。李飞飞曾表示,AI前沿研究涉及一种算法,这种算法可以合理推断出图像和文本在三维环境中的样子,并根据这些预测采取行动,这被称为“空间智能”
2024-10-14 00:25:06
884
原创 flash-attention代码逻辑
本篇写的很乱,主要是自己当时读代码时的一些随手记录,对自己帮助可能更大。如果觉得写得很乱不要喷我,我应该没时间整理成干净的博客了
2024-10-09 19:16:52
2346
1
原创 C++中的模板template
的判断完全在编译时完成,二者会生成两种不同的代码逻辑,减轻了运行时的开销;而普通参数是在运行时传递的,即它们的值只有在程序执行时才会确定。前者可用于生成不同的代码实例,从而提高性能、避免运行时开销。非类型形参与普通函数参数的区别:前者是在编译时确定的,允许将常量值、枚举值、指针等类型作为模板参数传递,并参与模板的实例化和代码生成,从而避免运行时的开销。
2024-10-07 16:36:43
622
原创 FlashAttention原理:从原始Attention到FlashAttention
以前的attention加速方法旨在减少attention的计算和内存需要,如sparse-attention、low-rank approximation等,但由于它们主要关注FLOP reduction,且倾向于忽略内存访问的开销,所以都没有达到wall-clock speedup。FlashAttention比普通attention的HBM(GPU high bandwidth memory)访问量更少,并适用于一系列SRAM大小。
2024-09-26 14:44:52
6347
2
原创 寒武纪MLU硬件--抽象硬件模型介绍
一些基本概念MLU Core:是寒武纪硬件的基本组成单元。每个MLU Core是具备完整计算、IO和控制功能的处理器核心,可独立完成一个计算任务,也可与其他MLU Core协作完成一个计算任务Cluster:每4个MLU Core构成一个Cluster,每个Cluster内还会包含一个额外的Memory Core和一块被Memory Core和4个MLU Core共享的SRAM(Shared RAM,共享存储单元)Memory Core:不能执行向量和张量计算指令,只能用于SRAM和DDR(Dou
2024-07-22 11:39:14
2555
原创 Cambricon BANG C编程入门
Cambricon BANG异构并行编程模型利用CPU和MLU协同计算。CPU作为主机侧的控制设备,用于完成复杂的控制和任务调度;设备侧的MLU则用于大规模并行计算和领域相关的计算任务。使用Cambricon BANG C编写程序时,需要同时编写主机侧和设备侧的代码。
2024-07-21 22:44:46
1980
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅