FPGA与CPU异构计算交易实践

📚 共计 30 章节
01
异构计算概述
什么是异构计算 · FPGA vs CPU vs GPU · 为什么交易系统需要异构计算 · 课程目标与学习路径
概念导论
02
FPGA基础与开发环境
FPGA内部结构(LUT、FF、BRAM、DSP)· Verilog基础语法 · Vivado开发流程 · 第一个LED闪烁程序
VerilogVivado
03
CPU与FPGA通信基础
PCIe协议简介 · AXI总线协议 · DMA传输原理 · Xilinx DMA IP核配置
PCIeAXIDMA
04
交易系统核心概念
订单簿数据结构 · 撮合引擎逻辑 · 市场数据行情 · 延迟与吞吐量指标
订单簿撮合
05
低延迟网络栈
UDP/IP协议栈的FPGA实现 · MAC层与PHY层 · 时间戳生成 · PTP精确时间同步
UDPPTP低延迟
06
硬件加速器设计(一)
加法器与乘法器的流水线设计 · 查找表(LUT)优化 · 定点数运算
流水线定点数
07
硬件加速器设计(二)
排序网络(Batcher奇偶归并排序)· Top-K选择器 · 哈希表硬件实现
排序哈希
08
订单簿硬件实现
Level2行情解析 · 订单簿快照维护 · 价格-数量映射表 · 增量更新
订单簿硬件
09
撮合引擎硬件实现
价格优先时间优先逻辑 · FIFO队列管理 · 交易对并行处理 · 冲突解决
撮合FIFO
10
风险控制模块
最大订单量检查 · 价格波动限制 · 自成交预防 · 实时监控与告警
风控监控
11
内存与存储优化
HBM与DDR4对比 · BRAM与URAM使用策略 · 数据预取与缓存一致性
HBMBRAM
12
CPU端软件架构
多线程编程模型 · 无锁队列(Lock-Free Queue)· 内存屏障 · NUMA亲和性
多线程无锁
13
FPGA驱动开发
Linux字符设备驱动 · mmap内存映射 · 中断处理 · 用户态与内核态通信
驱动mmap
14
异构计算框架
OpenCL for FPGA · Xilinx Vitis统一开发平台 · HLS(高层次综合)入门
OpenCLVitis
15
HLS实战
用C++编写FPGA加速器 · 流水线指令(PIPELINE)· 数组分区(ARRAY_PARTITION)· 接口综合
HLSC++
16
性能基准测试
延迟测量方法(RDTSC、PTP时间戳)· 吞吐量测试 · 资源利用率分析 · 功耗评估
基准测试延迟
17
回测系统集成
将FPGA加速器接入回测框架 · 事件驱动模拟 · 历史数据重放 · 性能对比
回测集成
18
实盘交易系统架构
主备切换 · 心跳检测 · 日志与审计 · 灾备方案
架构高可用
19
市场数据接入
交易所API对接(CTP、FIX)· 多路行情合并 · 数据校验与纠错
行情API
20
策略信号生成
基于FPGA的实时指标计算(移动平均、RSI、布林带)· 信号触发逻辑
策略指标
21
订单管理模块
订单状态机 · 订单生命周期管理 · 撤单与改单 · 订单路由
订单状态机
22
系统调试与优化
Vivado逻辑分析仪(ILA)· CPU性能剖析(perf)· 联合调试技巧
调试ILA
23
安全与合规
加密引擎(AES、SHA256)硬件实现 · 密钥管理 · 监管日志
加密AES
24
高级主题
动态部分重配置(DPR)· 多FPGA协同 · 云端FPGA实例(AWS F1、阿里云F3)
DPR云端
25
机器学习在交易中的应用
FPGA加速神经网络推理 · 轻量级模型(决策树、SVM)硬件实现
ML推理
26
项目实战(一)
搭建最小交易系统 —— 行情接收+订单簿维护+简单策略
实战最小系统
27
项目实战(二)
实现完整撮合引擎 —— 支持限价单、市价单、撤单
实战撮合引擎
28
项目实战(三)
集成风险控制与订单管理 —— 端到端交易流程
实战风控
29
项目实战(四)
性能调优与对比测试 —— CPU vs FPGA vs CPU+FPGA
实战性能对比
30
总结与展望
异构计算发展趋势 · 量子计算与交易 · 课程回顾与资源推荐
趋势量子