一、算法流程详解(对应代码与论文 Chapter 2 / Fig.4)
下面按流水线顺序把每一步做清晰说明,便于你审阅和写报告时直接引用。
1. 系统初始化与数据接收(CPU 端)
目的:把来自前端 FPGA 的“控制信息”和“采样数据”读入主机内存,准备后续处理。
代码对应:
generate_echo_data(conf)(仿真场景下生成 Nf×Nr 的复数回波数据),在真实系统中这一步为 DMA / 网络 / PCIe 数据收集。要点:
数据量大时必须考虑零拷贝与 pinned memory,以降低 Host↔Device 传输开销。
在混合系统里建议把“原始大数据”一次性拷贝到 GPU(显存)上,避免多次往返。
2. GPU 并行信号处理流程(GPU 端密集计算)
按论文 Fig.4 把内核拆分为若干阶段,GPU 在这些步骤上承担主要工作以发挥并行能力。
2.1 拆解包(Unpacking) —kernel_1
目标:把原始整数/定点样本转换为浮点复数,做通道重排(channel demux)以方便并行处理。
实现要点:<