
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
深入解析C++多态底层实现机制,重点讲解vtable与vptr原理,并结合单继承与多继承详细拆解对象内存布局及虚函数调用流程。同时分析多态带来的空间与时间开销,包括间接寻址与内联优化受限等性能影响,帮助读者建立底层视角,提升面试与工程实践能力。
笔者每个月都会做一类算法题,最近一个月都在做回溯相关的算法题,总结出一些小套路。什么是回溯算法回溯算法个人理解其实就是一种暴力枚举方法,其中的回溯意思是指在当前岔路口选择一条路走出去后还可以回到当前岔路口再选择另一条路去走,和枚举很像吧,回溯算法的应用很多,常见的有全排列、数独、N皇后、0-1背包、正则表达式匹配、走迷宫等等。回溯算法的套路套路1回溯算法其实主要的是需要确定如何开始与如何结束,一般
在分布式系统架构中,当多个服务实例需要访问同一共享资源时,分布式锁成为了保证数据一致性的关键机制。从秒杀系统防止库存超卖,到定时任务避免重复执行,再到支付回调防止重复处理,分布式锁的身影无处不在。对于准备后端面试的开发者来说,这几乎是绕不开的话题,而面试官往往会从多个角度进行追问:为什么需要分布式锁?有哪些实现方案?各自的优缺点是什么?如何根据业务场景进行选型?这些问题看似简单,但要让面试官满意,
大家好,今天介绍一个C++中非常常用的模式:pimpl至于它有什么作用,直接看代码:// MyClass.hclass MyClass {public:void func1();void func2();private:void func3();void func4();int a;int b;};假设我们在开发一个SDK,或者设计某个模块,需要暴露出去一个MyClass.h头文件,并向用户提供f
至于像涉及操作系统层面的动态内存分配、颇具历史包袱的数组退化问题,以及现代 C++ 中为解决资源泄露而发明的智能指针体系,甚至那些令人闻风丧胆的野指针和悬空指针灾难案例,我们都会在后续探讨资源管理和标准模板库(STL)的专门章节中为大家逐一揭晓。在追踪包含指针流转的代码时,你绝不能仅仅看一眼它最初诞生时指向上帝的哪个角落就觉得万事大吉,你必须要全程盯紧它,提防它在某个不为人知的角落被塞入了另一个毫
很多人用了很久深度学习,但如果你问他"模型在计算机里到底是什么",他会开始含糊——“就是一个神经网络嘛”、“就是个 AI 嘛”。这一章我们就把这个问题说清楚。画面里这台标着"MODEL"的机器就是本课的主角。车间里的所有东西都是为了描述它:左边墙上那张蓝图是网络结构,地面传送带上的零件箱是参数权重,传送带从入口走到出口的过程是一次推理。蓝色机器人导师站在旁边,扮演车间主任——它会贯穿这个系列的每一
把模型拆成了参数和网络结构,数据在传送带上流动。但那些流动的"数据箱"到底是什么格式?装了多少东西?怎么描述它的规格?这一章专门回答这个问题。你做 AI Infra,打交道最多的不是模型的数学原理,而是数据的形状。报错了先看 shape,优化了先算 shape,做显存估算要从 shape 算起。这一章从最基础的"一个数"开始,一路讲到 forward pass 里 shape 怎么一层层变化。读完
好了,逛完了所有的工位,咱们往后退一步,再看看整个车间。其实再复杂的大模型,也就是把咱们刚才看的这些算子,像搭积木一样串联起来。比如一个标准的 Transformer Block,大概也就是:进门先做个 Norm,然后跑两个 Linear 算 Attention,再做个 Norm,最后跑两个 Linear 算 MLP。咱们 AI Infra 工程师看一个网络,其实视角很简单:第一步,认出它是由哪些
最后看这幅决策全景图。以后接到模型任务,在分叉路口,先认准方向。如果是走左边去搞推理,你脑子里想的就是怎么管理瘦身后的显存(比如优化 KV cache),怎么把吞吐量拉高,怎么降低延迟让用户等得少一点。如果是走右边去搞训练,面对那四座大山(特别是庞大的优化器状态),你想的就得是怎么做分布式,怎么把梯度在多张卡之间切分和同步,怎么抠下每一点显存来塞进更大的 batch。路选对了,账本才能算对,后面要
咱们拿大家最熟悉的 7B 模型(比如 Llama-2-7B)来实操一下。70 亿个参数,现在业界默认的发布格式基本都是 FP16。70亿×2字节140亿字70亿 \times 2字节 = 140亿字70亿×2字节140亿字,约等于 14GB。你看右边那张 A100 的对比图,14GB 的权重放进 80GB 的显存条里,也就是占了底下的一小截。这就是为什么大家说推理一个 7B 模型,单张卡轻轻松松。







