当前位置: 首页 > news >正文

如何加快香山处理器Chisel->Verilog编译速度

===========================================
graalvm installation
===========================================
更换JVM。我们推荐使用GraalVM代替OpenJDK。
使用GraalVM免费版作为JVM编译香山比OpenJDK快10%-20%。
--------------------------------------------------------------------------
https://www.graalvm.org/latest/docs/getting-started/linux/
download  jdk-17_linux-x64_bin.tar.gz & jdk-20_linux-x64_bin.tar.gz

mkdir graalvm
cd graalvm
tar -zxvf jdk-17_linux-x64_bin.tar.gz
export PATH=/home/hemin/graalvm/jdk-17.0.8/bin:$PATH
export JAVA_HOME=/home/hemin/graalvm/jdk-17.0.8
java --version

> java version "17.0.8" 2023-07-18 LTS
> Java(TM) SE Runtime Environment (build 17.0.8+9-LTS-211)
> Java HotSpot(TM) 64-Bit Server VM (build 17.0.8+9-LTS-211, mixed mode, sharing)


===========================================
circt installation
===========================================
使用CIRCT编译香山
相比使用默认的scala firrtl complier,使用CIRCT能够将香山代码编译到Verilog的速度提高50%左右。

要使用CIRCT编译Chisel代码,可以参考以下步骤进行配置:
在本地从源码编译CIRCT,在编译完成后将circt/bin路径加入PATH中。
在执行make命令时加上MFC=1,例如make verilog MFC=1或make emu MFC=1。
--------------------------------------------------------------------------
sudo apt install ninja-build

git clone https://github.com/llvm/circt
cd circt
git submodule init
git submodule update

sudo apt-get autoremove cmake
wget https://cmake.org/files/v3.20/cmake-3.20.0-linux-x86_64.tar.gz
tar zxvf cmake-3.20.0-linux-x86_64.tar.gz
sudo mv cmake-3.20.0-linux-x86_64 /opt/cmake-3.20
export PATH=/opt/cmake-3.20/bin:$PATH

====Build and test LLVM/MLIR====
$ cd circt
$ mkdir llvm/build
$ cd llvm/build
$ cmake -G Ninja ../llvm \
    -DLLVM_ENABLE_PROJECTS="mlir" \
    -DLLVM_TARGETS_TO_BUILD="host" \
    -DLLVM_ENABLE_ASSERTIONS=ON \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
$ ninja
$ ninja check-mlir

====Build and test CIRCT====
$ cd circt
$ mkdir build
$ cd build
$ cmake -G Ninja .. \
    -DMLIR_DIR=$PWD/../llvm/build/lib/cmake/mlir \
    -DLLVM_DIR=$PWD/../llvm/build/lib/cmake/llvm \
    -DLLVM_ENABLE_ASSERTIONS=ON \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
$ ninja
$ ninja check-circt
$ ninja check-circt-integration # Run the integration tests.
 

http://www.lryc.cn/news/188291.html

相关文章:

  • pillow篇---pillow连续打开同一张图片会导致打开失败问题
  • 详细解说iptables 高阶用法,用来完成哪些高效率网络路由策略场景,iptables 实现域名过滤,Linux如何利用iptables屏蔽某些域名?
  • 面试总结-Redis篇章(十二)——Redis是单线程的,为什么还那么快
  • 5.编写程序 超强力方法
  • 超详细DeepLabv3 介绍与使用指南 – 使用 PyTorch 推理
  • 移动应用-Android-开发指南
  • 免费开源的非标项目型制造BOM一键导入方案介绍
  • 用合成数据训练车辆姿态估计神经网络
  • 【QT开发笔记-基础篇】| 第四章 事件QEvent | 4.5 键盘事件
  • 爬取微博热榜并将其存储为csv文件
  • 国庆中秋特辑(八)Spring Boot项目如何使用JPA
  • 用jad反编译工具查看java接口相关的默认修饰符
  • axios的get请求时数组参数没有下标
  • bochs 对 Linux0.11 进行调试 (TODO: 后面可以考虑集成 vscode+gdb+qemu)
  • 一文告知HTTP GET是否可以有请求体
  • 防止SQL注入攻击的综合解决方案
  • MapReduce(林子雨慕课课程)
  • PHP聊天系统源码 在线聊天系统网站源码 后台自适应PC与移动端
  • 算法题:买卖股票的最佳时机 II (贪心算法解决股票问题)
  • Redis-持久化机制
  • 【LeetCode热题100】--155.最小栈
  • Allegro 17.2如何直接更新元件封装?
  • 高效数据管理:Java助力实现Excel数据验证
  • Easysearch Chart 0.2.0都有哪些变化
  • RV1126-RV1109-进入uboot的按键和名字显示-HOSTNAME
  • 学习vue-router
  • Python爬虫提高排名
  • SQL获取正数第N个或倒数第N个数据
  • 链表(2)——带头双向循环链表
  • C语言 函数指针