3.1 KiB
3.1 KiB
tags, date created, date modified
| tags | date created | date modified |
|---|---|---|
| 星期四, 十一月 27日 2025, 11:54:57 中午 | 星期四, 十一月 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 带宽。