主页

Docker BuildKit故障排查问题分析

问题 docker build 过程中 build kit报错 yxc@yxc-MS-7B89:~/code/3/vllm$ docker build -t yxc.vllm.cuda.1 . Sending build context to Docker daemon 28.02MB Step 1/54 : FROM nvidia/cuda:12.1.0-devel-ubuntu22.04 AS dev ---> 963712b8747f Step 2/54 : RUN apt-get update -y && apt-get install -y python3-pip git ---> Using cache ---> 50ac8...

阅读更多

JavaScript与C++无缝集成:以stdlib.js的Node-API为例

0 背景介绍 stdlib.js 是一个综合性的 JavaScript 库,提供了多种数学和统计功能,提供了js调用c/cpp的实现 1 重构issue 在 Issue #1528 中,提出了对 @stdlib/blas/ext/base/snansum 函数进行重构的建议。主要目标包括: 从 C++ 插件接口迁移到 C 插件接口 统一代码风格 简化实现方式 遵循项目约定(详见 Issue #788) PR #2227 已经做了合入 2 基于Node-API的实现 核心实现在 lib/node_modules/@stdlib/blas/ext/base/snansum/src/addon.c #include "stdlib/blas/ext/bas...

阅读更多

CMake进阶:find_package()函数完全解析与自定义模块开发指南

在 cmakelist.txt 文件中,find_package() 命令用于查找并加载外部库的设置。它并不直接管理依赖包,而是依赖于外部预设的模块或配置来找到这些库。 他找的路径是 cmake/module/XX.cmake 因此,如果是单独的项目,要进行编译,可以设置path set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake:${CMAKE_MODULE_PATH}") 这样的话,会去项目的cmake 目录找

阅读更多

GPU MEM 训练和微调估算

在训练或微调大型语言模型(LLM)和其他深度学习模型时,GPU显存限制往往是主要瓶颈。了解模型所需的最低显存是避免OOM(内存不足)错误的关键一步。以下是两个有用的在线工具,可以帮助你估算显存需求: 1. HuggingFace的模型内存使用估算器 HuggingFace提供了一个专门的工具,可以帮助估计训练和微调所需的最低显存大小: 名称:Model Memory Utility 链接:https://huggingface.co/spaces/hf-accelerate/model-memory-usage 用途:估算训练或微调模型所需的最低GPU显存 受欢迎程度:918个赞 这个工具允许你选择特定模型,并根据批量大小、精度等参数计算所需的显存。它可以帮...

阅读更多

ApacheBench (ab) 工具深度指南:突破单机并发限制与性能优化最佳实践

问题:ab -c 10000 报错 “too many open files” 在使用 Apache Benchmark (ab) 进行高并发负载测试时,当设置较高的并发连接数(如 -c 10000)时,经常会遇到以下错误: too many open files 这是因为操作系统对单个进程可以同时打开的文件描述符数量有默认限制。在 Linux 系统中,每个 TCP 连接都会消耗一个文件描述符,所以高并发测试很容易达到这个限制。 解决方案:增加文件描述符限制 临时解决方案 使用 ulimit 命令可以临时增加当前会话的文件描述符限制: ulimit -n 65535 执行此命令后,再运行 ab 测试: ab -n 100000 -c 10000 http://yo...

阅读更多

Linux网络监控实战:使用NetHogs实时追踪进程级带宽占用与分析指南

sudo nethogs是一个在Linux系统中使用的命令行工具,用于监控网络流量。通过这个命令,用户可以实时查看哪些进程正在使用网络带宽。这对于诊断网络问题、监控网络使用情况或者仅仅是为了了解哪些应用程序正在访问网络非常有用。 安装 Nethogs 在大多数Linux发行版中,nethogs不会预装。你可以通过包管理器来安装它。 对于基于Debian的系统(如Ubuntu),可以使用: sudo apt-get install nethogs 使用 Nethogs 以下命令启动nethogs: sudo nethogs sudo是必需的,因为nethogs需要足够的权限来监控网络接口和查看所有进程的网络活动。 功能和输出解释 启动n...

阅读更多

解决VS Code Remote-SSH连接失败:glibc版本不兼容问题的排查与修复指南

问题描述 在VSCode更新到1.86版本后,一些之前运行正常的Remote-SSH连接突然无法使用。这个问题主要出现在Ubuntu 18.04和更早版本的Linux系统上,而在较新的系统如Debian 12上则不受影响。 报错 更新1.86完成后,原来好好的 Remote SSH 再也连不上了,提示 GLIBC 版本太低 Warning: Missing GLIBC >= 2.28! from /lib/x86_64-linux-gnu/libc-2.27.so Error: Missing required dependencies. Please refer to our FAQ https://aka.ms/vsc code-remote/faq/old-linux ...

阅读更多

Linux内核调试实战:使用kallsyms追踪内核符号、函数调用与模块定位技术

问题 Linux 内核:能否在编译或者运行环境中找出 a 模块调用的某个函数来源于另外哪个模块吗? 解决方案:kallsyms kallsyms 是 Linux 内核中一个重要的调试工具,它允许用户在内核运行时查看和解析内核符号。 kallsyms 的主要功能是提供内核符号的地址和名称,这些符号包括函数、变量、结构体、枚举等。用户可以通过使用 kallsyms 来查找内核中特定符号的地址,或者通过解析内核符号的地址来确定符号的名称。 kallsyms 的使用 只需要在内核命令行中添加 kallsyms=1 即可。添加 kallsyms=1 后,内核将在启动时生成一个符号表,并将符号表存储在 /proc/kallsyms 文件中。 用户可以通过使用 cat 命令来查看 /pr...

阅读更多