抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

NixOS

NixOS 被Linux依赖折磨的朋友应该考虑一下NixOS 圣经 安装直接看官方的installation manual summary即可 如, uefi用户直接 1234567891011121314parted /dev/vda -- mklabel gptparted /dev/vda -- mkpart primary 512MB 100%parted /dev/vda -- ...

大模型的长序列优化survey

大模型的长序列优化为什么长序列是必要的? prompt engineering 会话, 书籍, 视频 不忘记之前说的话, 不分心 idea prompt hashing! 允许精度损失, 浮点数类似的精度设计 如果一个token表示的不是一个token, 而是一个区域? 再加一个encode向量数据库 相关图, k邻近 多模态有没有可能就是将其他各种信息都embading进去...

FlashAttention笔记

FlashAttention 1 main idea IO感知, 即感知GPU的层级关系 手动算子融合, 实现CUDA算子 局限和Future 需要手写CUDA做融合, 希望可以用高级语言写在编程成CUDA IO感知的思路可以扩展到非Attention的场景 多GPU的IO感知也可以做优化 实现 尽可能少设计HBM读写 计算softmax时不需要访问整个输入 重新设计attn的计算,...

简单三步看清Megatron-LM的实现, Megatron源码解析

Megatron TEP 小白帮小白, 从我一个小白的视角记录我想要知道的东西, 希望能”模式匹配”帮助下一个小白 Megatron源码解析(overview版) 所谓简单三步就是: 数据并行, 流水并行, 张量并行 这里将简单理清Megatron实现数据并行, 流水并行, 张量并行的整体逻辑, 但talk is cheap, 更详细的代码细节可以看完本文后分模块再去深究。 数据并行: ...

如何将梯度下降算法变成分布式的梯度下降算法

如何将梯度下降算法变成分布式的梯度下降算法 Scaling Distributed Machine Learning with the Parameter Server scheduler 通知所有worker加载数据, LoadData() 通知worker启动并分批处理小批量的数据, WorkerIteration(t) worker LoadData 读取对应块的数据 从ser...

自动微分简记

自动微分 https://www.bilibili.com/video/BV1zD4y117bL/?spm_id_from=pageDriver&vd_source=fa5227c06f0a0c9f870b406f10be1d31 automatic differentiation in Machine Learning: a Survey 两种模式 前向 后向 都用雅各比矩阵...

如何实现一个高性能LRU

如何实现一个高性能LRU 本质是分桶降低map锁的影响范围,然后使用单独的一个worker线程逐一处理链表的更新操作。 一个基本的实现就是一个lru链表,然后元素访问的时候移动到链表头,超出容量就淘汰链尾元素。 然后再看看怎么从链表中找到目标元素,方便我们移动。一个办法就是使用map做索引。这样就实现了O(1)的整删改查。 123456789--- Item1 ...

大模型训练优化

大模型训练优化大模型现状处理大模型的主要办法是数据切分,然后做数据并行, 模型并行和张量并行。原理略 总结一下数据并行和模型并行存在的资源利用率问题: 数据并行 多个GPU上需要存储相同的模型,导致模型资源占用放大 每次迭代最后都有不小的模型同步开销 模型并行: 流水线并行 + 张量并行 大模型训练的流水线需要等待执行结果,无法多发射,导致资源闲置和利用率低 流水线各个阶段的负载不均匀...

Redis赏析

Abstract主要记录Redis整体架构及其巧妙的设计。 主要结构体 sds(simple dynamic string) dict set: TODO zset list 其他: zmalloc TODO: 主要lib(抽象) redis object ae 主要亮点 epoll实现的异步库 渐进式rehash 流式read, write redis Redissd...

锁锁速查

Cheat sheet 枚举各种情况 普通自旋锁 缓存与不可扩展 MCS锁(排队锁) 可扩展但开销更高 QSpinLock spinlock + MCS lock 以上都没考虑numa的影响 Delegation Lock(代理锁) 同类临界区操作都发送同一个NUMA中执行 解决了NUMA带来的不同性能问题 以上都没考虑异构核的影响 LibASL可扩展锁(乱序重排锁) 不...