自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(234)
  • 资源 (14)
  • 收藏
  • 关注

原创 volcano 的binpack调度

摘要:Binpack调度策略的核心目标是优化资源利用率,减少碎片化问题。该策略通过节点打分机制,优先选择资源利用率高的节点,以减少资源浪费(如设备维护成本)和通信开销(关联服务同节点部署)。打分过程综合考虑CPU、内存等资源的加权利用率,计算公式为资源权重乘以(请求量+已用量)/可用总量。Binpack得分最终与其他调度插件得分共同决定节点选择。该策略适用于大规模集群场景,可有效提升整体资源使用效率。

2026-04-21 16:33:45 209

原创 GPU通信速率对比

摘要:以太网理论带宽与实际TCP吞吐量存在差距,10G/25G/100G以太网实际吞吐约为理论值的80-94%。RDMA网络(如100G/200G/400G IB/RoCE)吞吐可达理论值的95%以上,明显优于TCP。NVLink带宽随版本提升显著,H100达1.8TB/s,Blackwell达3.6TB/s。GPU通信中,同NUMA节点内PCIe P2P速度(10-12GB/s)优于跨NUMA节点(4-8GB/s),后者受CPU互联总线限制导致带宽减半、延迟增加。

2026-04-11 17:58:17 303

原创 volcano 原理

文章摘要:随着云计算业务复杂度提升,需要更细粒度的调度支持。Volcano调度框架通过queue和job(podgroup)两层抽象实现资源管理,支持关联Pod同步调度、优先级调度和资源抢占。其调度流程分为enqueue、allocate等阶段,通过插件机制扩展策略,满足降低通信成本、保障核心业务等需求,为分布式训练等场景提供强大调度能力。

2026-04-06 19:08:01 296

原创 ubuntu 安装 openclaw 1006 问题修正

为网关配置或ubuntu防火墙导致。

2026-03-29 11:40:15 52

原创 sglang 原理

本文介绍了Transformer模型推理的核心流程和关键技术。推理过程分为prefill和自回归两个阶段:prefill阶段完成分词、向量化和位置编码,生成首个token;自回归阶段通过迭代生成后续token直至结束。针对推理特点,需要专门的推理引擎来构建计算图、加载权重并提供API服务,同时支持KV缓存优化和多机多卡并行计算以提升效率。Sglang作为推理引擎的实现,重点解决了算子构建、权重加载、KV缓存管理以及张量和模型并行等关键技术问题。

2026-03-25 13:51:05 138

原创 kubeflow pipline部署

本文介绍了ModelFlow概念及其在ML领域的落地实现Kubeflow平台。重点描述了Kubeflow Pipelines(KFP)模块的部署方案,包括Kubernetes环境准备、Kubeflow安装步骤以及存储配置问题的解决方法。通过kubekey工具部署单节点Kubernetes集群后,按照官方文档安装Kubeflow组件,并通过修改MySQL和SeaweedFS的存储挂载路径解决了服务崩溃问题。最后通过端口转发验证了Pipeline UI的正常访问。该方案为机器学习工作流提供了可移植、可扩展的部署

2026-03-19 11:39:09 385

原创 sglang 单机多卡与多机多卡的部署

SGLang是一个基于Python的分布式计算框架,通过多进程架构突破GIL限制。它支持三种并行计算模式:张量并行(TP)、流水线并行(PP)和数据并行(DP),以及针对特定模型的局部计算并行。文章详细介绍了TP模式的单机多卡部署方法,展示了服务启动日志和API调用示例,并简要说明了多机多卡集群的配置方式。SGLang能够有效利用多GPU资源,为大规模语言模型推理提供高效的分布式计算支持。

2026-03-11 16:25:03 378

原创 GPU 集合通信库 NCCL原理

分布式深度学习训练中需要将各个GPU的梯度等信息汇总计算,或拆分下发。训练过程需要大量 GPU 卡协同工作, 而GPU 甚至需要跨节点通信。训练任务期望无感知底层的网络拓扑与GPU协同工作。因此出现了nccl,主要支持。

2026-03-11 10:54:41 363

原创 云平台构建 RDMA高性能网络

rdmaSharedDevicePlugin配置:在物理机上lan2、lan3、lan4、lan5分别对应mlx5_0、mlx5_1、mlx5_2、mlx5_3,将四张网卡分别以nvidia.com/mlx5_0、nvidia.com/mlx5_1、nvidia.com/mlx5_2、http://nvidia.com/mlx5_3的资源名称变成k8s的扩展资源,每个扩展资源定义为100份。

2026-03-11 10:06:20 604

原创 GPU 间的通信方式

通信速率对比

2026-03-10 14:53:16 126

原创 训练数据集加速方案

因此参考上面的问题,需要通过以下方式加速。

2026-03-10 10:21:40 49

原创 juicefs 构建存储系统

摘要:JuiceFS是一个支持平台化存储管理的系统,能将NFS、S3等不同存储统一为JuiceFS格式,通过元数据存储目录结构,数据存储实际内容。它提供多种访问方式:挂载到容器卷、通过S3接口访问、支持WebDAV协议操作目录。此外,JuiceFS还提供命令行工具,支持配额控制和数据备份,便于存储维护管理。

2026-03-09 15:50:37 56

原创 kubernetes深度分析 cdi nvidia-device

kubernets cdi主要完成 让节点感知可供容器使用的设备资源,当容器申请对应资源时,为该容器分配设备并挂入容器使用。以cdi接入nvidia显卡设备到容器为例。

2026-03-03 10:15:54 101

原创 kubernetes深度分析 csi juicefs

摘要:JuiceFS CSI插件通过juicefs-csi-node和juicefs-controller组件实现容器卷挂载。csi-node负责节点级操作:注册RPC、创建挂载目录、启动juicefsmountpod处理FUSE请求;业务容器通过该目录访问外部存储。controller负责元数据管理,不参与具体挂载。整个流程实现了容器对分布式存储的透明访问,数据最终写入外部dataserver和metadataserver。

2026-02-27 23:25:30 328

原创 kubernetes深度分析 cni calico

5. containerd 使用 calixxx 虚拟网卡通过 veth pair 的方式生成 对端虚拟网卡eth0 for pod,并放入pod对应的网络命名空间。网络的配置方式以cni插件的方式支持动态扩展,calico即其中一种网络插件。calico 的地址分配使用calico-ipam进行,但该工具管理的地址数据存放在etcd中,可以使用calicoctl进行查看。4. 在calico场景下,在节点上创建了联通节点间流量的隧道tunl0,并为每个pod创建了calixxx的虚拟网卡。

2026-02-26 19:32:20 345

原创 kubernetes深度分析 kube-proxy

摘要:kube-proxy通过监听API server中Service、Endpoint/EndpointSlice和Node资源的变化,维护服务地址到Pod地址的映射关系。这些映射关系会转换为iptables或ipvs规则,实现服务请求到Pod的转发。以minio服务为例,kube-proxy会将ClusterIP和NodePort映射到对应的Pod IP和端口,并使用轮询(rr)负载均衡策略。通过ipvsadm可查询到具体的转发规则,包括ClusterIP到Pod以及NodePort到Pod的映射关系。

2026-02-26 14:44:32 77

原创 kubernetes 深度分析 pod

run/containerd/io.containerd.runtime.v2.task/k8s.io/【容器ID】 该目录下主要有容器的配置信息,日志文件,以及容器rootfs目录。pod下的其他容器将 加入到与sandbox相同的 network namespace, ipc namespace, uts namespace, user namespace.pod 下的sandbox容器与业务容器的 cgroup namespace,pid namespace 独立。抱持与kubelet的独立。

2026-02-25 09:37:21 616

原创 kubernetes 多服务更新资源 冲突问题解决

当多个服务同时修改kubernetes相同资源时可能发生下面的冲突错误: 这是最常见的错误,表示请求无法完成,因为该资源已经被其他操作修改。Kubernetes 会返回一个包含详细信息的错误消息。: 当你尝试更新资源时,Kubernetes 会检查资源的版本。如果在更新时,资源的版本已经改变,系统可能会返回一个错误,提示你需要使用最新的版本进行更新。

2025-10-14 11:34:54 257

原创 RVC WebUI(Retrieval-based-Voice-Conversion-WebUI) 配置

RVC WebUI (Retrieval-based Voice Conversion,檢索式語音轉換) 為一款開源的AI翻唱軟體,可以依照你的意思,讓AI為你唱首歌。譬如,我讓川普翻唱Radiohead的High And Dry:這款軟體最大的特色是複製人聲和訓練模型的成本很低,不用太高階的顯示卡就能跑!

2025-09-27 14:21:50 1661

原创 vdbench磁盘性能测试方法

安装运行环境。

2025-05-29 09:57:06 771

原创 volcano源码分析 - 2调度器

1. cache提供了当前job信息, podgroup信息,pod信息,节点信息的缓存集合,用于后续调度计算时作为参考的基础信息快照。2. 周期性的开启Session, 每次Session中将依次执行加载的各个Action过程(如: enqueue, allocate, preempt, reclaim, backfill)。3. 对于每个action将执行plugin中注册在该action中的对应回调函数。4. 在Session过程中,通过各个action过程,最终完成任务的调度抢占等工作。

2025-04-22 13:53:18 543

原创 volcano源码分析 - 1整体结构

Volcano是下首个也是唯一的基于Kubernetes的容器批量计算平台,主要用于高性能计算场景。它提供了Kubernetes目前缺 少的一套机制,这些机制通常是机器学习大数据应用、科学计算、特效渲染等多种高性能工作负载所需的。作为一个通用批处理平台,Volcano与几乎所有的主流计算框 架无缝对接,如等。它还提供了包括异构设备调度,网络拓扑感知调度,多集群调度,在离线混部调度等多种调度能力。

2025-04-22 10:11:11 1166

原创 golang gmp模型分析

就是告诉那些运行时间超过特定阈值(10ms)的G,该让一让了,怎么知道运行时间过长了呢,P里面有一个schedtick字段,每当调度执行一个新的G,并且不继承上个G的时间片时,就会把它自增1,而这个p.sysmontick中,schedwhen记录的是上一次调度的时间,监控线程如果检测到p.sysmontick.schedtick与p.schedtick不相等,说明这个P又发生了新的调度,就会同步这里的调度次数,并更新这个调度时间。实际上监控线程,调度器,GC等工作过程中都会按需执行netpoll。

2025-04-09 11:30:17 1409

转载 golang gc流程分析

我们还是基于上述的三色并发标记法来说, 他是一定要依赖STW的. 因为如果不暂停程序, 程序的逻辑改变对象引用关系, 这种动作如果在标记阶段做了修改,会影响标记结果的正确性。,STW的过程中,CPU不执行用户代码,全部用于垃圾回收,这个过程的影响很大,Golang进行了多次的迭代优化来解决这个问题。A.添加下游对象(nil, B) //A 之前没有下游, 新添加一个下游对象B, B被标记为灰色。正常执行算法逻辑,对象2,3标记为黑色,而对象3,因为对象4已经不会再扫描,而等待被回收清除。

2025-04-08 10:01:59 185

原创 gin 源码分析

这部分并不是 Gin 实现的,而是开篇在 Gin 的介绍里提到的 httprouter 实现的,Gin 使用了 httprouter 来做了这部分的功能。c就像是一根管道,将该次请求相关的所有的函数都串起来了。上文提到,当使用 gin.Default 创建一个 Engine 的时候,会执行 Engine 的 Use 方法导入两个函数,其中的一个是 Recovery 函数的返回值,它又是对其它函数的封装,最后调用到的函数是 CustomRecoveryWithWriter,来看一下这个函数的实现。

2025-04-07 14:31:33 827

原创 envoy 源码分析

服务网格 生态中 envoy源码分析

2025-03-19 23:04:43 1094

原创 Godot读取json配置文件

godot读取json配置文件的简单封装

2025-03-19 21:28:58 1684

原创 Langchain应用-rag优化

RAG,Retrieval-Augmented Generation,中文名检索增强生成,是AI领域非常重要的一种技术方案。其核心作用是给LLM大模型外挂专门的知识库,指导大模型生成更准确的输出。

2025-03-13 13:05:54 999

原创 qemu-kvm源码解析-内存虚拟化

qemu kvm virtual memory

2025-03-12 23:33:50 1288

原创 linux 共享内存扩展GPU显存

软件扩展 GPU显存

2025-03-12 22:20:34 1561

转载 istio与kubernetes资源关系

Istio的原理是拦截 Kubernetes 中创建 Pod 的事件,然后向 Pod 中注入一个包含 Envoy 的容器,进出 Pod 的流量会被 “劫持” 到 Envoy 进行处理。由于流量被 “劫持” 了,所以 Istio 可以对流量进行分析例如收集请求信息,以及一系列的流量管理操作,也可以验证授权信息。当 Envoy 拦截流量并执行一系列操作之后,如果请求没问题,就会转发流量到业务应用的 Pod 中。

2025-03-01 11:58:37 231

原创 Leecode-11.盛最多水的容器

双指针收缩检索范围

2025-02-26 13:32:20 1007

原创 langchain应用-agent

在 LangChain 中,Agent 是一个代理,接收用户的输入,采取相应的行动然后返回行动的结果。Agent 可以看作是一个自带路由消费 Chains 的代理,基于 MRKL 和的基本原理,Agent 可以使用工具和自然语言处理问题。官方也提供了对应的 Agent,包括 OpenAI Functions Agent、Plan-and-execute Agent、的 Agent 等。Agent 的作用是代表用户或其他系统完成任务,例如数据收集、数据处理、决策支持等。

2025-02-19 21:19:31 1200

原创 langchain应用-RAG

检索增强生成(Retrieval Augmented Generation),简称 RAG,已经成为当前最火热的LLM应用方案。

2025-02-18 23:40:37 597

原创 qemu-kvm源码解析-cpu虚拟化

qemu, kvm 中 cpu 虚拟化的实现源码分析

2025-02-18 23:01:07 1460

原创 容器运行时 源码分析

容器运行时源码分析

2025-02-18 00:24:51 947

原创 ovs源码分析

ovs 内核部分的代码在linux内核的 /net/openswitch目录下,应用层控制面代码在ovs项目中。

2025-02-13 23:31:54 1156

原创 kubernetes-cni 框架源码分析

这篇文章主要深入探索 Kubernetes 网络模型,并了解容器、pod 间如何进行通讯。对于网络模型的实现将会在后面的文章介绍。

2025-02-13 23:02:04 1135

原创 kubernetes源码分析-kube-apiserver

基于属性的访问控制(Attribute-based access control - ABAC)定义了访问控制范例,其中通过使用将属性组合在一起的策略来向用户授予访问权限。启用ABAC鉴权器需要额外增加一个。

2025-02-13 14:54:19 843

原创 kubernetes源码分析 kubelet

从官方的架构图中很容易就能找到kubelet执行kubelet -h看到 kubelet 的功能介绍:kubelet 是每个 Node 节点上都运行的主要“节点代理”。使用如下的一个向 apiserver 注册 Node 节点:主机的hostname;覆盖host的参数;或者云提供商指定的逻辑。kubelet 基于PodSpec工作。PodSpec是用YAML或者JSON对象来描述 Pod。Kubelet 接受通过各种机制(主要是 apiserver)提供的一组PodSpec。

2025-02-13 11:14:58 1388

Quagga模块交互资料(英文)

超好的资料,虽然很短,但是清晰的讲解了整个通信过程

2013-08-13

数据库原理

黑书系列,数据库超详细的,如果时间长想学深入,黑书系列是首选。

2013-08-13

算法导论答案

直到现在找到的最全的一份,英文版的资料。其中答案说明非常详细。

2013-08-13

数据分流算法资料

RFC算法, 于多比特数相比各有所长, 多比特树使用较RFC算法使用条件限制更大。

2013-08-15

多比特树详解

超详细,从unibit tree开始讲解,逐步上升到多比特树,可以知道其发展过程。

2013-08-13

算法导论 第三版

算法各领域痛杀

2012-01-25

vimrc配置文件

强大的配置文件 for vim。带各种插件

2013-09-10

函数图像大全

超级好的函数图像全集 有一般常见的函数没有

2013-08-22

30天自制操作系统

操作系统实践的好书,就是东西要求太多了,和橘子书差不多的。

2013-08-13

计算机程序设计艺术(第二版,中文版,第三卷:排序和查找,Donald E. Knuth 著

1。计算机程序设计艺术 1.算法学习的利器 2.清晰

2013-01-21

j-link驱动

J-link的哦 稳定性比较好的版本

2012-01-11

设计模式经典文章

编程语言不是障碍,超级好文,精华啊!

2013-12-26

2011嵌入式系统设计师考试

嵌入式系统设计师考试大纲

2012-01-25

mu临时存储

tmp store for me, delete it at night

2013-09-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除