• 最新文章
  • 计算机科学
  • 读书笔记
  • CPP
  • OS
  • 图论
  • 交叉学科
  • 大数据
  • 微专题
  • 转载文章

写博客的一周年

不知不觉中,我建立自己的博客已经有一年了。想在这里分享一些感悟。 我的大脑记忆像是一个随时丢失的网状数据库。丢失知识是常态,但因为知识之间有像网一样的连接,我们常能根据临近知识点推导或恢复出原本的内容。分布式存储里我们用奇偶校验构建容错,人脑里可能更像是一张知识网。虽然我们没有RAID,但我们有类比和抽象的能力。 当然,有一个强大的大脑加上不断的练习,可以构建一个不错的知识库。但有没有什么方式,可

已弃坑:oneDNN架构解读

PS:这玩意已经不更新了,intel 放弃了哈哈哈哈哈哈哈。 https://zhuanlan.zhihu.com/p/20510564015 oneDNN是Intel开源的深度学习加速库,其前身为MKLDNN,对于Intel自家硬件(CPU以及GPU),oneDNN对神经网络算子的计算过程进行了针对性的优化处理,从而显著提升了神经网络算子在Intel硬件下的计算速度。在训练侧,oneDNN已作为

自顶向下了解llama.cpp – ggml

由于工作要求,我尝试识读了llama.cpp框架在cpu端侧的推理情况。其实GPU端的结构我推测跟cpu差不多,只不过在底层算子会有区别,但是上层计算图等架构应该是差不多的。 好的,以下是我这个生成式AI给您生成的20000字长文(ChatGPT 也可能会犯错。请核查重要信息。): 学习链接 HF 导引 Introduction to ggml github源码 ggml 源码搭建 llama.c

AlpaServe: Statistical Multiplexing with Model Parallelism for Deep Learning Serving

模型并行性通常被视为一种将单个大型深度学习模型扩展到单个设备内存限制之外的方法。在本文中,我们证明了在为多个模型提供服务时,模型并行还可以用于多个设备的统计多路复用,即使单个模型可以适应单个设备。我们的工作揭示了模型并行性引入的开销与利用统计多路复用来减少突发工作负载下服务延迟的机会之间的基本权衡。我们探索了新的权衡空间,并提出了一种新的服务系统 AlpaServe,它确定了在分布式集群中放置和并

xFastTransformer 架构解读

省流:这东西2年前做的,最麻烦的是文档很少,基本都要从零开始研究代码,考虑时间成本我没有花很多精力。 如果大家想在单机上用CPU推理,也可以试试intel pytorch extension或者llama.cpp。(不过xFt相比他们俩的好处是,它的代码结构也相对比较简单易懂,大家都可以自由选择) 但是目前这个东西没有用计算图优化,它每次计算都要重开openmp并行域,感觉这会出点问题。 Exam

ASPLOS08 – Overshadow: A Virtualization-Based Approach to Retrofitting Protection in Commodity Operating System

来自我的操作系统课的第二次Pre 这篇文章是在硬件虚拟化时代之前的科技与狠活 现有的保护应用的方法有从应用入手,从OS入手,从HW入手,从虚拟机入手。但是他们都有点昂贵,那我们能不能从VMM虚拟机管理器这个角度入手? 完整PPT Overshadow Overshadow 用了一个clocking的机制来确保要保护的程序不会被恶意程序访问

Pytorch ATen Matmul CPU 算子解析

在上一期 https://www.haibinlaiblog.top/index.php/llm-on-cpu/ , 我们探讨了各个LLM的具体结构,今天我们就来探寻这些结构/算子的底层实现。 上一期我们探讨的架构:LLM各阶段的代码在pytorch的实现 Pytorch调用栈解析 所以你这边就能看到Pytorch的调用核心逻辑了。它会先决定做什么算子,什么数据。然后回call_impl,此时它会

HPDC19: Parsl: Pervasive Parallel Programming in Python

《Parsl: Pervasive Parallel Programming in Python》,发表在HPDC \'19会议上,作者来自芝加哥大学、阿贡国家实验室等机构。以下是对文章内容的简要介绍: 核心内容 文章介绍了一个名为 Parsl 的Python并行脚本库,旨在通过简单、可扩展和灵活的方式增强Python的并行编程能力。Parsl通过在Python中引入特定的构造(constructs

Pytorch Intro: Everything you want to know

Pytorch 本质是和python完全不一样的东西。然后这东西本质是拿来训练模型的,其他的事情它干的一般般的。 学习链接 官方教程 Welcome to PyTorch Tutorials — PyTorch Tutorials 2.7.0+cu126 documentation Learning PyTorch with Examples — PyTorch Tutorials 2.7.0+c

X-Queue阅读

Abstract—Achieving efficient task parallelism on many-core architectures is an important challenge. The widely used GNU OpenMP implementation of the popular OpenMP parallel pro gramming model incurs h

B-Queue

3_2.eps B-Queue 是一种面向多核架构中核间通信的高效、实用的 单生产者-单消费者(SPSC)无锁队列,其设计旨在解决现有并发无锁队列(CLF queue)在真实应用中存在的性能退化与死锁难题。 背景动机 多核系统中,线程间通常通过共享内存进行通信,CLF 队列被广泛用于核心间通信。然而现有的方案(如 FastForward 和 MCRingBuffer)存在如下问题: 性能仅在理想条

gcc是如何实现OpenMP parallel for的

学习网页 本次我们主要会聚焦team.c 和loop.c: gcc/libgomp/loop.c at master · gcc-mirror/gcc gcc/libgomp/team.c at master · gcc-mirror/gcc OpenMP For Construct dynamic 调度方式实现原理和源码分析 - 一无是处的研究僧 - 博客园 TL; DR TL;DR: 大概id

gcc是怎么实现OpenMP的?

由于网上关于GNU openmp的解构比较少,今天我由于工作问题,我也来亲自解答:“为什么OpenMP不能完成 “小而多的并行任务” 的问题。(llvm的解构我之前在博客已经做过 llvm 如何实现OpenMP ,其实从结构来看,跟OpenMP的结构基本一致,都遵从OpenMP官方的fork-join 的idea,但是llvm的实现会比较复杂) 学习网页 我们所有的学习都可以从这里出发: 源码 d