创建仓库
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
---
|
||||
tags: []
|
||||
aliases:
|
||||
- 1.6.1 异构调试与内存安全 (Heterogeneous Debugging & Memory Safety)
|
||||
date created: 星期三, 十一月 19日 2025, 8:31:15 晚上
|
||||
date modified: 星期三, 十一月 19日 2025, 8:31:38 晚上
|
||||
---
|
||||
|
||||
# 1.6.1 异构调试与内存安全 (Heterogeneous Debugging & Memory Safety)
|
||||
|
||||
**审计综述**:
|
||||
系统在调试层面具备极高的能力,Host 端 GDB 基础稳固,Device 端拥有专用调试器。然而,ASAN 库的安装路径不标准,需要手动配置系统链接器以启用。
|
||||
|
||||
**1. GDB 调试前端 (GDB Debugging Frontend)**
|
||||
|
||||
- **关键性**:**P0**
|
||||
- **信息解析**:
|
||||
- **版本与支持**:GDB 版本为 **9.2** (Kylin 定制版),且 **Python 接口已激活**。
|
||||
- **价值**:Python 接口是 VSCode / CLion 等 IDE 实现高级断点、复杂结构体可视化以及 GDB 脚本扩展的必要条件。
|
||||
- **探测依据**:
|
||||
|
||||
```bash
|
||||
gdb --version
|
||||
GNU gdb (GDB) KylinOS 9.2-3…
|
||||
gdb -q -ex 'pi print(…)' -ex quit
|
||||
Python support is active
|
||||
```
|
||||
|
||||
**2. 异构调试工具链 (Heterogeneous Debugger Tools)**
|
||||
|
||||
- **关键性**:**P0**
|
||||
- **信息解析**:
|
||||
- **专用调试器**:**ixgdb** (Iluvatar GDB) 存在。这是用于 GPU Kernel 级断点调试的专用工具,等同于 NVIDIA 的 `cuda-gdb`。
|
||||
- **远程支持**:`gdbserver` 存在。可用于在远程开发机器(如 Windows/MacOS)上通过 VSCode/SSH 附件到 Kylin 服务器上的进程进行调试。
|
||||
- **探测依据**:
|
||||
|
||||
```bash
|
||||
ls -l /usr/local/corex/bin/*gdb*
|
||||
/usr/local/corex/bin/ixgdb
|
||||
/usr/local/corex/bin/gdbserver
|
||||
```
|
||||
|
||||
**3. 内存安全检测工具 (Memory Safety Checkers)**
|
||||
|
||||
- **关键性**:**P1**
|
||||
- **信息解析**:
|
||||
- **Valgrind**:**v3.13.0** 已安装,可用于 Host 端代码的内存泄漏和越界访问检测。
|
||||
- **ASAN (Address Sanitizer)**:库文件 `libasan.so` **已安装**在 GCC 7.3 的私有路径 (`/usr/lib/gcc/…`)。
|
||||
- **风险与修正**:ASAN 库默认对系统链接器不可见。已通过创建 `/etc/ld.so.conf.d/gcc7-asan.conf` 文件并执行 `ldconfig` 解决了此路径问题。
|
||||
- **探测依据**:
|
||||
|
||||
```bash
|
||||
which valgrind && valgrind --version
|
||||
/usr/bin/valgrind valgrind-3.13.0
|
||||
```
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
tags: []
|
||||
date created: 星期三, 十一月 19日 2025, 8:34:02 晚上
|
||||
date modified: 星期三, 十一月 19日 2025, 8:34:18 晚上
|
||||
---
|
||||
|
||||
# 1.6.2 性能分析与实时监控 (Performance Analysis & Real-time Monitoring)
|
||||
|
||||
**审计综述**:
|
||||
系统在 Host 端和 Device 端均具备强大的性能监控和分析能力。已确认关键工具 `perf` 和 `ixprof` 存在,且内核支持完整的事件追踪。NUMA 内存分配均衡,为高性能雷达应用提供了可靠的诊断基础。
|
||||
|
||||
**1. GPU 性能分析工具链 (GPU Profiling Toolchain)**
|
||||
|
||||
- **关键性**:**P0**
|
||||
- **信息解析**:
|
||||
- **CUpti 接口**:`libcupti.so.2.89` 存在。**CUpti (CUDA Profiling Tools Interface)** 是所有高级 GPU 性能工具与驱动通信的底层接口,它的存在证明 GPU 侧的性能数据采集功能已激活。
|
||||
- **专用 Profiler**:`ixprof` (Iluvatar Profiler) 存在。这是用于采集 GPU 单元利用率、显存带宽和 Kernel 时序等指标的专用工具,可用于替代 `nvprof`。
|
||||
- **探测依据**:
|
||||
|
||||
```bash
|
||||
ls -l /usr/local/corex/lib/libcupti.so*
|
||||
… libcupti.so.2.89
|
||||
ls -l /usr/local/corex/bin/ixprof
|
||||
/usr/local/corex/bin/ixprof
|
||||
```
|
||||
|
||||
**2. Linux 内核级性能分析 (Kernel Performance Analysis)**
|
||||
|
||||
- **关键性**:**P0**
|
||||
- **信息解析**:
|
||||
- **Perf 工具**:`/usr/bin/perf` 存在。Perf 已识别出 **Bus Cycles**、**Cache Misses**、**CPU Cycles** 等 ARMv8 硬件性能计数器事件。
|
||||
- **内核追踪 (Ftrace)**:`/sys/kernel/debug/tracing/available_tracers` 文件存在(虽然大小为 0),证明 `debugfs` 已挂载,内核支持 **ftrace**。这为分析锁竞争、调度延迟等实时性问题提供了深度追踪能力。
|
||||
- **探测依据**:
|
||||
|
||||
```bash
|
||||
which perf && perf list
|
||||
/usr/bin/perf [Hardware events listed]
|
||||
ls -l /sys/kernel/debug/tracing/available_tracers
|
||||
… available_tracers
|
||||
```
|
||||
|
||||
**3. 实时系统与 NUMA 监控 (Real-time & NUMA Monitoring)**
|
||||
|
||||
- **关键性**:**P1**
|
||||
- **信息解析**:
|
||||
- **增强任务管理**:`htop` 已安装。这是比 `top` 更直观的实时任务管理器,有利于在运行雷达程序时实时观察 CPU 亲和性(Affinity)是否正确绑定在 Node 1 (CPU 16-31) 上。
|
||||
- **NUMA 内存分配**:`numastat -m` 显示 Node 0 和 Node 1 的物理内存总量和使用量**大致均衡**。当前没有明显的跨节点内存压力。
|
||||
- **默认策略**:`numactl --show` 显示当前 shell 默认策略是 `policy: default`,且绑定到所有 CPU (0-31) 和所有 Node (0/1)。
|
||||
- **重申风险**:这再次印证了为什么必须在启动 `main_app` 时使用 `numactl --cpunodebind=1 --membind=1` 强制覆盖默认策略。
|
||||
- **探测依据**:
|
||||
|
||||
```bash
|
||||
which htop
|
||||
/usr/bin/htop
|
||||
numactl --show
|
||||
policy: default
|
||||
```
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
tags: []
|
||||
date created: 星期三, 十一月 19日 2025, 8:38:01 晚上
|
||||
date modified: 星期三, 十一月 19日 2025, 8:40:07 晚上
|
||||
---
|
||||
|
||||
# 1.6.3 版本控制与数据基线管理 (Versioning & Data Baseline Management)
|
||||
|
||||
**审计综述**:
|
||||
系统具备稳固的版本控制基础,且已补齐了管理大型二进制文件所需的关键工具 **Git LFS**。Docker 的存在为构建标准化 CI/CD 流程提供了运行环境。
|
||||
|
||||
**1. Git 版本状态 (Git Version Status)**
|
||||
|
||||
- **关键性**:**P1**
|
||||
- **信息解析**:
|
||||
- **版本**:**Git 2.27.0**。该版本较为新近,支持所有现代 Git 功能(如稀疏检出、新版 Diff 算法)。
|
||||
- **平台**:运行于 `linux arm64`。
|
||||
- **探测依据**:
|
||||
|
||||
```bash
|
||||
git --version
|
||||
git version 2.27.0
|
||||
```
|
||||
|
||||
**2. 大文件存储支持 (Git LFS Support)**
|
||||
|
||||
- **关键性**:**P0**
|
||||
- **信息解析**:
|
||||
- **状态**:**Git LFS v2.10.0** 已安装,且已通过 `install --system` 进行全局初始化。
|
||||
- **价值**:解决了雷达项目管理大文件(如校准系数、模型权重)的痛点,确保 Git 仓库体积不会过度膨胀。
|
||||
- **探测依据**:
|
||||
|
||||
```bash
|
||||
which git-lfs && git lfs version
|
||||
/usr/bin/git-lfs
|
||||
git-lfs/2.10.0 (…)
|
||||
```
|
||||
|
||||
**3. CI/CD 环境工具 (Automation Tools)**
|
||||
|
||||
- **关键性**:**P1**
|
||||
- **信息解析**:
|
||||
- **容器化**:**Docker** 运行时已安装 (`/usr/bin/docker`)。
|
||||
- **价值**:这是将项目构建环境标准化(例如:将 GCC 7.3 和 Clang 18.1 封装在 Docker 镜像中)的关键,可确保 CI/CD 流程的构建结果具有高度可复现性。
|
||||
- **探测依据**:
|
||||
|
||||
```bash
|
||||
which docker
|
||||
/usr/bin/docker
|
||||
```
|
||||
Reference in New Issue
Block a user