项目简介
本项目是基于Python和PyMOO框架开发的FPGA逻辑综合优化系统,借助遗传算法(如NSGA - II)来寻找最优的FPGA设计序列,进而提升设计的性能与效率。项目包含多个模块,支持不同的优化算法与策略。
项目的主要特性和功能
- 动作空间管理:对动作空间和动作类进行定义,管理FPGA设计优化的可用操作。
- 设计组管理:引入设计组概念,提供处理不同设计组的工具,支持多种设计类型的优化。
- 实验优化框架:具备实验优化的基本框架与接口,包括实验创建、执行和结果记录。
- 支持多目标优化:运用NSGA - II算法处理多目标优化问题,如面积、延迟和深度等目标。
- 结果记录与可视化:提供结果记录功能,支持结果可视化,如后悔QoR曲线。
安装使用步骤
系统环境与软件
系统环境为Linux,需要安装python3.7和anaconda。
安装依赖
- 创建python3.7虚拟环境:
bash conda create -n yourEnv python=3.7 conda activate yourEnv
- 下载必要库:
bash pip install -r requirements.txt
下载并编译iMap
bash
git clone https://gitee.com/oscc-project/iMAP.git
git clone https://gitee.com/wang-rui13132008217/nsga2.git
mv nsga2/* iMap/ai_infra
cd iMap
mkdir build && cd build
cmake ..
make -j 8
cd ..
cp bin/imap ai_infra
修改文件路径
修改results_storage_root_path.txt内为ai_infra文件夹所在路径,运行utils/utils_save.py文件保存路径。
运行实验
NSGA2运行示例
进入GA目录,运行命令:
bash
python main_nsga2.py --designs_group_id arbiter --n_gen 100 --pop_size 20 --seq_length 10 --seed 0
Boils运行示例
进入Boils目录,运行命令:
bash
python main_boils.py --designs_group_id arbiter --seq_length 10 --device -1 --seed 0
分析结果
分析实验结果,包括最佳序列、函数值等。
注意:具体安装和使用步骤可能需根据项目具体要求和环境调整。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】