42 lines
3.1 KiB
Markdown
42 lines
3.1 KiB
Markdown
|
|
---
|
|||
|
|
tags: []
|
|||
|
|
date created: 星期四, 十一月 27日 2025, 11:54:57 中午
|
|||
|
|
date modified: 星期四, 十一月 27日 2025, 11:44:56 晚上
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 3.1 异构协同模型与职责边界 (Heterogeneous Collaboration Model & Responsibility Boundary)
|
|||
|
|
|
|||
|
|
- **设计目标**:最大化利用国产异构硬件特性(Feiteng 的逻辑控制能力 + Iluvatar 的并行浮点能力),同时最小化 PCIe 总线上的交互频率。
|
|||
|
|
|
|||
|
|
## 3.1.1 Device 侧驻留图谱:信号处理流水线 (Device-Resident Workload: Signal Processing Pipeline)
|
|||
|
|
|
|||
|
|
- **核心指向**:定义必须**“死锁”在 GPU 显存**中运行的算法全集。严禁数据在中间步骤回流 CPU。
|
|||
|
|
- **算法栈与库选型**:
|
|||
|
|
- **波束形成 (DBF)**:利用 **cuBLAS** (Vendor) 进行矩阵乘法加速。
|
|||
|
|
- **脉冲压缩 & 多普勒处理**:利用 **cuFFT** (Vendor) 执行批量 FFT。
|
|||
|
|
- **恒虚警检测 (CFAR)**:利用 **Thrust** (Open Source/Vendor SDK) 的 `transform` 和 `stencil` 算法实现并行滑窗检测,避免手写复杂 Kernel。
|
|||
|
|
- **边界法则**:**“GB 进,KB 出”**。输入是原始 I/Q (GB 级),输出是点迹列表 (KB 级)。中间过程(如 RDM 矩阵)绝不离开显存。
|
|||
|
|
|
|||
|
|
## 3.1.2 Host 侧驻留图谱:逻辑控制与后处理 (Host-Resident Workload: Logic & Post-Processing)
|
|||
|
|
|
|||
|
|
- **核心指向**:定义由 CPU 负责的标量计算和状态管理任务。
|
|||
|
|
- **开源库集成**:
|
|||
|
|
- **数据关联与滤波 (Tracking)**:利用 **Eigen3** (Open Source) 实现卡尔曼滤波(Kalman Filter)和概率数据互联(PDA)算法。Eigen 的向量化指令(NEON)能极好地适配飞腾 CPU。
|
|||
|
|
- **全链路日志与审计**:集成 **spdlog** 或 **glog** (Open Source),在控制路径上打点,记录任务调度延迟和状态变更,而非自己造日志轮子。
|
|||
|
|
- **参数配置管理**:集成 **yaml-cpp** (Open Source) 解析雷达波位表和 CFAR 阈值参数。
|
|||
|
|
|
|||
|
|
## 3.1.3 宏指令交互接口 (Macro-Instruction Interface)
|
|||
|
|
|
|||
|
|
- **核心指向**:定义 Host 指挥 Device 的“语言”。摒弃微观的“启动这个 Kernel”式调用,转为 **“宏指令 (Macro-Op)”** 模式。
|
|||
|
|
- **指令结构**:定义 `RadarProcessingJob` 结构体。
|
|||
|
|
- 包含:`BatchID`、`WaveformParams`(波形参数)、`AlgoConfig`(算法开关)。
|
|||
|
|
- **机制**:CPU 只需下发一个 Job 对象,GPU 侧的 **“执行器 (Executor)”** 自动展开为数十个 Kernel 的调用序列。这极大减少了 Host 端的调度抖动。
|
|||
|
|
|
|||
|
|
## 3.1.4 算力回流边界:CFAR 截断点 (The "CFAR Cutoff" Boundary)
|
|||
|
|
|
|||
|
|
- **核心指向**:精确定义数据从 GPU 流回 CPU 的唯一物理与逻辑时刻。
|
|||
|
|
- **截断策略**:
|
|||
|
|
- **物理点**:CFAR 检测完成后。此时数据量从“全图像素”坍缩为“稀疏点迹”。
|
|||
|
|
- **数据转换**:在 GPU 上直接使用 **Thrust** 的 `copy_if` 算子,将满足阈值的点收集到连续内存块(`DetectionResult` 数组),然后一次性 DMA 回传。
|
|||
|
|
- **反模式警示**:严禁将整个 2D 距离 - 多普勒图(Range-Doppler Map)传回 CPU 做检测,这会瞬间击穿 PCIe x8 带宽。
|