- 博客(533)
- 资源 (10)
- 收藏
- 关注

原创 A Model-Driven Deep Learning Method for Normalized Min-Sum LDPC Decoding
来源Q. Wang, S. Wang, H. Fang, L. Chen, L. Chen and Y. Guo, “A Model-Driven Deep Learning Method for Normalized Min-Sum LDPC Decoding,” 2020 IEEE International Conference on Communications Workshops (ICC Workshops), Dublin, Ireland, 2020, pp. 1-6, doi: 10.1
2020-09-07 14:09:38
973

原创 每日强化学习
20200901强化学习阅读:https://blog.csdn.net/qq_30615903/article/details/80739243
2020-09-01 15:23:39
139

原创 Relation extraction文章
Others2018No.FigureTitleAuthorsPub.Links5CASREL:A Novel Cascade Binary Tagging Framework for Relational Triple ExtractionKun Ho Kim, Oisin Mac Aodha, Pietro PeronaCVPR 2018 (Spotlight)paper4[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xk
2020-06-12 07:58:29
830

原创 凸优化之内点法
Convex Optimization Stephen Boyd Department of Electrical Engineering Stanford University 第11章本文为笔者结合原书及博客https://blog.csdn.net/dymodi/article/details/46441783 记录自己相关解释原始问题原始问题对应的拉格朗日公式为:利用障碍函...
2020-04-05 11:37:35
1764

原创 GloVe: Global Vectors for Word Representation必记
关于算法原理参考:下面是Relation with skip gramskip gram:接下来在整个corPus 中训练:但在vast corpus 难以求所有的Qi,jQ_{i,j}Qi,j,采用近似但对于两分布中的交叉熵损失是有弊端的:即低概率高权值并且上式中的Qi,jQ_{i,j}Qi,j还是难以normalized,因此不归一化带来的问题是Qhat,Pha...
2020-03-04 11:41:32
240

原创 semi -supervised classification with graph convolutional networks学习必记
1 主要解决的问题半监督学习:用于少量节点标签未知,例如文本、citation network、知识图谱分类2 主要思想采用图卷积中的一阶局部近似(即K=1),这部分的理解可以参考Chebyshev多项式作为GCN卷积核当K=1 时有两个参数,模型scales linearly in the number of graph edges ,同时可以表征局部图结构和节点的特征:3. 半...
2020-02-19 14:27:03
389

原创 Convolutional Sequence to Sequence Learning学习心得
为什么使用CNN学习序列表示和RNN相比,CNN产生的背景向量固定并且通过stacking 可以使 contex size 更大,如下图。和RNN相比,CNN产生的背景向量固定并且通过stacking 可以使 contex size 更大,如上图。Hierarchy representation如图1,只需要三次CNN operation ,而需要 7 次 r...
2020-02-18 16:25:43
648

原创 Sequence to Sequence Learning with Neural Networks学习笔记
论文的主要创新点提出了序列到序列的学习方法提出的背景DNN的限制:输入和输出向量维度固定,实际上很多序列问题中的序列长度不是已知先验单个RNN 的限制:输入和输出等长,且要一一对齐且对齐已知,无法应用到输入输出不等长且对应关系为非montonic解决方案两个RNN理论可行一个负责将输入充列map 为固定大小的vector(背景向量,含有整个输入句子的信息),另一个RNN将背景向列...
2020-02-17 16:44:20
332

原创 Attention Is All You Need(Transformer )
今天是2020年2月1日,笔者学习了Attention Is All You Need(Transformer )论文,可以在sequence to sequence 模型中用multi head self -attention 代替RNN,可以并行计算输出,其中multi head 的作用可以集成不同的上下文attention,由于knowledge leve有限,代码层面有待学习...
2020-02-01 16:54:11
168

原创 自然语言处理(机器翻译IBM模型 系列)
机器翻译方法概述直接转换法基于规则的翻译方法基于中间语言的翻译方法基于语料库的翻译方法- 基于事例的翻译方法- 统计翻译方法- 神经网络机器翻译基于规则的翻译过程分成6个步骤:(a) 对源语言句子进行词法分析(b) 对源语言句子进行句法/语义分析© 源语言句子结构到译文结构的转换(d) 译文句法结构生成(e) 源语言词汇到译文词汇的转换(f ) 译文词法选择与生成...
2019-12-25 16:29:35
3734
原创 【大模型量化】QuaRot
我们提出QuaRot(一种基于旋转的新型量化方案),其能够对LLMs进行端到端量化,包括所有权重、激活值和KV缓存均压缩至4位。QuaRot通过旋转LLMs的方式,在不改变输出的前提下从隐藏状态中移除离群值,从而简化量化过程。该计算不变性被应用于LLM的隐藏状态(残差)、前馈组件的激活值、注意力机制的部分结构以及KV缓存。最终得到的量化模型中,所有矩阵乘法均以4位精度执行,且无需任何通道以更高精度保留。
2025-05-30 15:28:56
611
原创 [大模型学习量化】 flatquant
目前 各类旋转/可逆矩阵对量化参数进行预变换(QuaRot、SpinQuant、QServe、以及FlatQuant。大模型后量化算法迭代迅速,早期进行线性层缩放(AWQ/SmoothQuant),设计预量化变换 量化、 及低精度矩阵相乘的融合算子也尤为重要。
2025-05-30 14:58:34
144
原创 【Deepseek 学网络互联】跨节点通信global 和节点内通信CLAN保序
ta的提问很精准,说明已经理解了源端保序的概念,现在卡在目的端保序的退化形式上。用户似乎已经理解Global保序的严格性,可以举例说明退化场景:比如GPU0同时向GPU1和GPU2发数据,在Clan模式下GPU2可能先收到消息,而这在Global模式下是被禁止的。用户可能忽略了"网络单路径"的隐含条件:如果操作系统把同一TCP流的数据包哈希到不同路径,顺序就会乱。Clan模式下的源端保序与Global类似,目的端保序则退化成通道保序,此时仅支持网络单路径保序。”这里的通道保序怎么理解?
2025-05-29 11:47:40
276
原创 【大模型学习网络互联】Memory-Mapped I/O MMIO语义与MEM语义
实际上设备寄存器间隔常是非连续的,比如0x1000处是控制寄存器,0x1004却是只读状态寄存器,中间0x1001-0x1003保留。尤其关注“详细描述”,可能遇到了调试问题,比如设备不响应或总线错误。嗯,用户要求更详细地区分MMIO和MEM语义,看来之前的中文对比虽然系统但还不够深入。最后用GPIO操作实例展示后果:如果忘记volatile,LED控制代码可能被优化到只执行最后一次写入,导致闪烁异常。上次回复的表格对比被采纳了,这次要补充编译器优化案例和硬件信号时序。MMIO语义和MEM语义的区别。
2025-05-29 11:20:09
200
原创 【大模型训练】序列长度不均导致的FA计算不均衡会引入了额外的PP bubble和DP间等待
同时,在数据并行中,每个模型副本可能处理不同的数据分片。例如,处理长序列可能需要更多的计算资源,如果在microbatch中混合了不同长度的序列,那么某些microbatch的整体处理时间会更长,从而影响整个流水线的吞吐量。每个microbatch会被依次送入流水线的各个阶段,这样不同的阶段可以同时处理不同的microbatch,从而减少空闲时间,也就是所谓的bubble。现在,用户的问题是,当microbatch内的序列长度不均时,计算量不均衡,这会同时导致PP中的bubble和DP间的等待。
2025-05-27 10:21:10
900
原创 【Deepseek 学cuda】CUTLASS: Fast Linear Algebra in CUDA C++
k 在外层,可以将C放入寄存器, 遍历完所有的K之后,计算后,最终一次性将结果写回内存,而不需要中间结果写回内存。上面一次内存访问,数据计算重复N次,达到理论值,是要将A B C矩阵一次性全部放到缓冲里。
2025-05-14 17:46:20
233
原创 一致性哈希
一些场景希望同样的请求尽量落到一台机器上,比如访问缓存集群时,我们往往希望同一种请求能落到同一个后端上,以充分利用其上已有的缓存,不同的机器承载不同的稳定working set。而不是随机地散落到所有机器上,那样的话会迫使所有机器缓存所有的内容,最终由于存不下形成颠簸而表现糟糕。我们都知道hash能满足这个要求,比如当有n台服务器时,输入x总是会发送到第hash(x) % n台服务器上。
2025-05-14 11:06:42
545
原创 【Deepseek学习大模型推理】MOONCAKE: A KVCache-centric Architecture实验部分(下)
如前所述,根据Kimi的历史统计数据,MOONCAKE在A800和H800集群上分别实现了比基于vLLM的原有系统多处理115%和107%的请求量。具体而言,我们测量每个请求的首令牌生成时间(TTFT)和尾部延迟(TBT),其中TBT通过计算最长10%的token到达间隔的平均值确定。如§2所述,TTFT阈值设为30秒,TBT阈值根据场景分别设为100 ms、200 ms和300 ms。若请求的TTFT与TBT均低于各自阈值,则视为有效请求,有效请求占总请求的比例定义为有效请求容量。
2025-04-25 12:09:09
684
原创 【Deepseek学习大模型推理】MOONCAKE: A KVCache-centric Architecture 第一部分引言部分
作为模型即服务(MaaS)提供商,Kimi [5] 的核心目标之一是解决一个包含多重复杂约束的优化问题:优化目标是最大化整体有效吞吐量(直接影响收入),而约束条件则体现为不同层级的 SLOs。该平台以 KVCache 为中心,采用分离式架构——不仅将预填充(prefill)和解码(decoding)集群解耦,还通过高效利用 GPU 集群中未被充分利用的 CPU、DRAM、SSD 和网卡(NIC)资源,构建了分离式 KVCache。我们的分析基于表1的符号定义,并结合LLaMA3-70B的具体参数。
2025-04-23 15:42:43
678
原创 【DeepSeek 学习推理】Llumnix: Dynamic Scheduling for Large Language Model Serving实验部分
测试平台。我们使用阿里云上的16-GPU集群(包含4个GPU虚拟机,类型为ecs.gn7i-c32g1.32xlarge)。每台虚拟机配备4个NVIDIA A10(24 GB)GPU(通过PCI-e 4.0连接)、128个vCPU、752 GB内存和64 Gb/s网络带宽。模型。我们以流行的LLaMA模型族[57]为实验对象。测试两种规格:LLaMA-7B(单GPU运行)和LLaMA-30B(通过张量并行在单机4个GPU上运行)。模型采用常见的16位精度。
2025-04-22 15:59:42
1030
原创 【DeepSeek 学习推理】Llumnix: Dynamic Scheduling for Large Language Model Serving
为此,我们提出了Llumnix ——一种针对LLM服务的系统,它通过跨多个模型实例的运行时动态重调度 来应对异构且不可预测的请求。评估表明,与现有最先进的LLM服务系统相比,Llumnix将尾延迟降低了一个数量级,高优先级请求加速达1.5倍,且在保持相似尾延迟的情况下实现高达36%的成本节约。重调度通过响应请求实际内存增长,补充了初始调度的不足。在大多数时间段内,集群总空闲内存足以容纳至少三个实例(有时全部)的排队请求,但请求仍因单实例空闲空间不足而排队,这既揭示了碎片化现象,也表明。
2025-04-22 12:14:54
719
原创 【DeepSeek]20250417学习FP8 ,H100架构
例如,假设两个FP8数相乘后的结果需要更多的位数来表示,这时候如果立即转换为FP8来累加,可能会导致精度损失或溢出。在最终存储结果时,可能再将其转换为较低的精度(如FP16或FP8),但中间过程的累加器保持高精度可以提升整体计算的准确性。如果输入矩阵是FP8,那么乘法操作的结果会是FP8乘以FP8的结果。两个8位浮点数相乘的结果可能超过8位的表示范围,所以需要扩展精度来保存中间结果。例如,在计算C = A*B时,每个元素的计算是A的行元素与B的列元素对应相乘,然后将这些乘积相加得到C中的一个元素。
2025-04-17 10:58:16
225
原创 【cuda】通过矩阵转置分析bankConflict
https://zhuanlan.zhihu.com/p/479700213https://zhuanlan.zhihu.com/p/692010210https://zhuanlan.zhihu.com/p/4746910252
2025-04-08 17:47:37
85
原创 【Deepseek 学Cuda】double buffer 中涉及到全局内存到共享内存的搬运
asmvolatile::asmvolatile::asmvolatileasmvolatile学习double buffer 优化矩阵乘法, 看到了指令性的东西。
2025-04-03 11:04:37
452
原创 【deepseek】 学cuda 基于WMMA的半精度矩阵乘法(HGEMM)
难点在于划分warp。涉及三次划分warp。全局内存到共享内存如何划分warp?利用TensorCor 即wmma 接口实现16*16 矩阵相乘时,如何划分warp?将计算结果,写回全局内存,怎样划分warp 实现并行?这三次划分warp 可以独立的划分。原因在于,三次操作间已经__syncthreads()同步过了。代码中, 后两次划分warp方式可以保持一致。笔者学习过程中,对数据搬用划分可以方便理解。刚开始以为实现矩阵相乘时计算时warp的划分要和搬运保持一致,理解了一会儿。
2025-04-02 11:27:01
478
原创 【Deepseek 学投机推理】Sequoia
L40 GPU的卸载场景中 ,Llama2-70B模型的推理延迟可降低至0.56秒/标记 ,而当前最先进的卸载系统(如DeepSpeed-Zero-Inference [2])的延迟为5.5秒/标记,Huggingface Accelerate [16, 45] 的CPU卸载API则高达11秒/标记。在此,我们回顾基于树的推测解码方法。具体而言,我们将讨论现有方法如何选择推测树的结构(第2.1节)、其用于采样与验证标记树的算法(第2.2节),以及这些方法如何自动选择标记树形状(第2.3节)。
2025-03-31 11:04:15
709
原创 【DeepSeek学C++】移动构造函数
静态成员属于类本身,而非静态成员属于类的每个实例。因此,当移动一个对象时,静态成员并不属于对象实例的一部分,所以不需要移动。移动操作是针对对象实例的,所以只处理非静态成员。接下来,用户可能需要具体的例子来理解这一点。例如,如果有类中包含静态成员变量,移动操作不会去处理它,因为静态成员是所有实例共享的,移动一个实例不会影响其他实例的静态成员值。
2025-03-28 17:23:33
1199
原创 【deepseek 学c++】weakptr引用场景
std::weak_ptr 是 C++ 中与 std::shared_ptr 配合使用的智能指针,它本身不拥有资源的所有权,仅观察资源的状态,主要用于解决 shared_ptr 的循环引用问题和临时访问共享资源的需求。以下是 weak_ptr 的典型应用场景和核心价值:!
2025-03-27 17:14:47
339
原创 【Deepseek 学c++】再谈shred_ptr 多重控制块问题
当 ConcreteTask::execute 调用 getSharedThis() 时,会生成一个新的 shared_ptr,其控制块与原 task 的控制块独立。任务完成时,scheduler 持有的 task 和回调中的 shared_ptr 指向同一对象但属于不同控制块,导致对象被重复释放。正确实现:使用 enable_shared_from_this。错误实现:直接使用 this。
2025-03-27 12:23:59
337
原创 【DeepSeek学C++】shared_ptr学习
shared_ptrshared_ptr本身是一个对象,通常包含两个指针:一个指向被管理的对象,另一个指向控制块。控制块包含引用计数、弱引用计数以及可能的删除器等。当创建shared_ptr时,控制块会被动态分配,或者如果使用make_shared,可能会将对象和控制块分配在同一块内存中。用户提到“&a是A类对象的地址吗”,这里需要明确区分shared_ptr对象本身的地址和它管理的对象的地址。
2025-03-27 11:42:27
639
原创 【DeepSeek 学c++】dynamic_cast 原理
用于向下转化。父类引用指向指类对象假设父亲是a, 子类是b.子类对象A* pa 父类引用指向子类对象,那么向上转化 Apa = pb 这个是自动完成的,隐式转化,不需要dynamic_cast向下转化指的是Apa = new B。这个是指向子类对象的父类引用, 转化为子类引用总结就是 父类 向下转化为子类, 但是父类指针本身是指向子类的。而不是说指向父类的指针转化为指向子类的指针,这个是无法转的。
2025-03-21 17:30:33
1041
1
原创 【DeepSeek学C++】移动构造函数
首先,str是一个普通的string对象,然后通过std::move(str)将其转换为右值引用,赋值给r。但需要注意的是,虽然r是右值引用类型,但它本身是一个左值,因为它有名字。也就是说,当使用r的时候,它实际上是一个左值,尽管它的类型是右值引用。根据C++的标准,当用一个左值来初始化对象时,如果该左值的类型是右值引用,那么它会被视为左值,所以这里会调用拷贝构造函数,而不是移动构造函数。为了验证这一点,我可以考虑强制将r转换为右值,比如使用std::move®,这时候就会调用移动构造函数。
2025-03-20 23:02:52
238
模拟通信中信号角度的调制与解调
2018-04-20
labview实例
2018-03-18
MATLAB频谱图
2018-03-18
电容振荡器
2018-03-18
小功率调幅发射机
2018-03-18
电子线路课程设计
2018-03-18
小功率调幅发射机仿真报告
2018-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人