/usr/local/Ascend/ascend-toolkit/set_env.sh 可用;conda 环境 tmc_verl_vllm13_py311 可用/tmp/msmonitor_review 独立克隆仓库;Python 构建与安装使用 conda activate tmc_verl_vllm13_py311;未做系统级安装,不修改宿主全局服务配置文档结构完整、特性说明较全,但“新人按 README/安装指南直接上手”的主路径并不稳。mindstudio_monitor wheel 编译安装可以在给定环境中走通;但 dynolog/dyno 的源码编译路径被外网 GitHub 子模块依赖阻塞,快速入门要求的二进制前提未在仓内直接提供,导致核心命令无法在本次真实环境中继续验证。
dynolog/dyno 可执行文件,但仓库内没有现成二进制,源码构建又依赖多个 GitHub 子模块,普通新人很容易被网络或权限卡住。/home/server_certs、/home/client_certs、train.sh / run_ai_task.sh 如何准备。LD_PRELOAD 路径写法不一致,容易让用户在 CANN 安装路径判断上产生混淆。/usr/local/Ascend/ascend-toolkit/set_env.sh 存在;tmc_verl_vllm13_py311 可激活./plugin/build.sh 编译安装 wheel./plugin/build.sh 编译安装 wheel。这一环已按文档完成,可以作为后续步骤继续推进的可靠前提。mindstudio_monitor-26.0.0-cp311-cp311-linux_aarch64.whl 并 pip install0:07.98bash scripts/build.sh 编译 dynolog/dynobash scripts/build.sh 编译 dynolog/dyno。这一环已经成为主流程中断点,如果不补齐前置条件或修正文档,后续步骤无法正常继续。 从审查优先级看,这也是一个需要优先修复的关键节点。third_party/dynolog/third_party/tensorboard_logger 及其他 GitHub 子模块阶段卡住Failed to connect to github.com port 443;220s 超时后仍未完成dynolog daemondynolog daemon。这一环已经成为主流程中断点,如果不补齐前置条件或修正文档,后续步骤无法正常继续。 从审查优先级看,这也是一个需要优先修复的关键节点。dynolog 命令不存在dynolog / dyno 文件LD_PRELOADLD_PRELOAD。这一环需要带着执行偏差继续,说明文档对环境或路径存在隐含假设。 这一步虽然不一定立刻卡死,但会显著增加新手试错成本。/usr/local/Ascend/ascend-toolkit/latest/lib64/libmspti.so,但子文档示例使用 /usr/local/Ascend/cann/lib64/libmspti.sorun_ai_task.sh / train.sh,仓内未提供对应脚本dyno ... npu-monitor / nputracedyno ... npu-monitor / nputrace。这一环没有进入执行,通常是因为前序步骤已经阻塞。 从审查优先级看,这也是一个需要优先修复的关键节点。dyno 二进制未就绪无法继续| ID | 严重程度 | 分类 | 文档位置 | 问题简述 |
|---|---|---|---|---|
| ISSUE-01 | 阻塞 | 完整性 / 正确性 | 源码编译 dynolog 依赖多个 GitHub 子模块,文档未提前声明网络前提与替代方案 | |
| ISSUE-02 | 高 | 完整性 | 快速入门直接要求运行 dynolog / dyno,但仓内无现成二进制,也未说明如何先获得它们 | |
| ISSUE-03 | 高 | 正确性 / 可读性 | LD_PRELOAD 路径写法不一致,容易误导用户 | |
| ISSUE-04 | 高 | 完整性 / 易用性 | 示例依赖 run_ai_task.sh / train.sh,但仓库不提供最小可运行样例 | |
| ISSUE-05 | 中 | 易用性 / 完整性 | 证书目录使用 /home/server_certs、/home/client_certs,缺少 “NO_CERTS” 直连示例闭环 | |
| ISSUE-06 | 中 | 环境友好性 | 文档默认 pip install 到当前环境,未提醒建议隔离环境;实际执行出现 root pip 警告 | |
| ISSUE-07 | 中 | 正确性 / 完整性 | 文档宣称安装成功输出固定字符串,但真实执行可能显示 “already installed” 而非示例文案 |
bash scripts/build.sh;文档仅列出 gcc / rust / protobuf 等依赖,没有说明还需要稳定访问多个 GitHub 子模块
在 /tmp/msmonitor_review 按文档执行 timeout 220 bash scripts/build.sh
真实输出先进入 git submodule update --init,随后在 Cloning into '/tmp/msmonitor_review/third_party/dynolog/third_party/tensorboard_logger'... 及其他 GitHub 子模块阶段卡住;错误摘要为 Failed to connect to github.com port 443 after 130188 ms: Connection timed out
新人即使满足编译器、Rust、CANN 条件,也会因为文档没提前声明外网访问依赖而卡死在构建入口,无法拿到 dynolog/dyno
在 编译并安装dynolog 前补一节“网络前提”,明确需要访问 github.com;同时提供国内镜像/离线包/关闭 TensorBoard 依赖的替代路径,或直接推荐优先使用软件包安装
dynolog --enable-ipc-monitor --certs-dir /home/server_certs;dyno --certs-dir /home/client_certs ...
真实检查 command -v dynolog 与 command -v dyno
结果为 DYNLOG_NOT_INSTALLED、DYNO_NOT_INSTALLED
README/快速入门像是“拿来即跑”,但新人从源码仓库开始时并不能直接得到这两个命令;如果没先下载 zip 包或成功编译,整个快速入门不可执行
在快速入门开头明确写出“以下步骤要求已通过软件包安装或编译安装拿到 dynolog/dyno”;增加 which dynolog && which dyno 自检步骤和期望输出
LD_PRELOAD 路径说明前后不一致README 写 export LD_PRELOAD=<CANN toolkit安装路径>/ascend-toolkit/latest/lib64/libmspti.so;npumonitor_instruct.md 写 export LD_PRELOAD=<CANN Toolkit安装路径>/cann/lib64/libmspti.so
实机检查发现 /usr/local/Ascend/ascend-toolkit/latest/lib64/libmspti.so 存在,且它链接到 /usr/local/Ascend/cann/tools/mspti/lib64/libmspti.so
两份文档都可能在部分环境可用,但表达不统一,且第二种写法与本机真实软链位置并不完全一致
新人很容易误以为两种路径都应直接存在,遇到软链或目录差异时不知该以哪份文档为准
统一成一条推荐写法,并补充“可通过 ls -l $(python - <<<'') 不现实,建议直接 ls -l /usr/local/Ascend/ascend-toolkit/latest/lib64/libmspti.so 自检” 的说明;同时解释该软链可能指向 cann/tools/mspti/lib64/libmspti.so
bash run_ai_task.sh;bash train.sh
检查仓库目录后未发现 run_ai_task.sh 或 train.sh 样例
文档要求启动训练或推理任务,但没有给出最小 demo、环境变量注入方式、成功标志或参考仓库
新手不知道要在哪个项目里启动任务,也不知道任务需要满足什么条件(PyTorch/torch_npu、优化器约束、step 概念来源等)
补充一个最小 PyTorch 示例仓或脚本片段,至少说明“需在目标训练脚本所在 shell 中导出 MSMONITOR_USE_DAEMON / LD_PRELOAD 后再启动任务”,并给出 10~20 行可复现 demo
NO_CERTS 主路径示例大量示例使用 /home/server_certs、/home/client_certs;而 dyno_instruct.md 仅在参数表中提到 NO_CERTS
本次未生成 TLS 证书,按新手最小路径理应优先尝试免证书模式
文档没有把“无证书快速验证”串成完整命令序列
新人会先被 /home/server_certs、/home/client_certs 卡住,不知道这些目录如何创建、内容从哪来、是否可以跳过
在 README 和 quick start 直接增加一套 --certs-dir NO_CERTS 的最小验证命令;把 TLS 证书模式下沉到进阶章节
./plugin/build.sh -> pip install ${files}
在用户指定 conda 环境中执行 plugin/build.sh
pip 输出 WARNING: Running pip as the 'root' user can result in broken permissions...
共享机器或 root 环境下,新人可能污染环境或误把宿主环境问题当作文档问题
在安装章节前增加建议:优先 conda activate <env> 或 python -m venv;同时脚本和文档都建议使用 python -m pip install,并显式提示不要在未隔离的 root 基础环境中执行
Successfully installed mindstudio_monitor-<version> pybind11-<version>
重复执行 plugin/build.sh
真实输出为 mindstudio-monitor is already installed with the same version as the provided wheel. Use --force-reinstall to force an installation of the wheel.,随后只安装了 xlsxwriter
用户可能以为安装失败,因为输出与文档示例不一样
在成功判定中补充“若已安装相同版本,可能出现 already installed 提示,属于可预期现象;如需覆盖安装请加 --force-reinstall”
LD_PRELOAD 到底写哪个路径、成功后应该看到什么。dynolog/dyno 不可执行时,README 没有给出回退路线。scripts/build.sh、plugin/build.sh、plugin/setup.py。这些信息本应由安装文档明确告诉用户,例如:源码编译会拉取外部子模块、plugin 构建会自动下载三方依赖并直接 pip install。docs/zh/install_guide.md 明确 dynolog 编译的网络前提,并提供国内镜像、离线依赖或关闭 TensorBoard 依赖的构建方式。dynolog、dyno 是否就绪、NO_CERTS 免证书模式、LD_PRELOAD 自检命令。LD_PRELOAD 示例,统一 mindstudio_monitor / msmonitor_plugin 命名,减少歧义。点击正文中的文档位置会跳到下方对应摘录。为避免正文过长,这部分默认折叠。
点击报告中的文档位置可直接跳转到这里,查看本地源码中的对应行内容。
132: 1. 启动dynolog daemon进程。137: # 命令行方式开启dynolog daemon150: 3. 设置LD_PRELOAD启动MSPTI(启动npu-monitor功能设置)。152: ```bash157: 4. 启动训练或推理任务。163: 5. 使用dyno命令行触发npu-monitor监控关键算子耗时。173: 6. 使用dyno命令行触发nputrace采集详细trace数据(需要关闭npu-monitor功能才能触发nputrace功能)。63: ## 环境部署14: | --port | i32 | dynolog daemon进程监听的端口号,默认值1778。 | N |31: # 方法2:命令行执行158: ### 编译并安装dynolog164: ```bash191: ### 编译并安装mindstudio_monitor195: #### shell脚本一键安装202: 安装成功打印如下信息:65: ## 编译安装67: ### 安装依赖72: 4. 设置LD_PRELOAD使能MSPTI。74: ```bash77: 13: 14: 1. 启动dynolog daemon进程。39: 4. 启动训练或推理任务。