Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

systolic_params.h file missing #109

Open
mbelda opened this issue Nov 30, 2022 · 1 comment
Open

systolic_params.h file missing #109

mbelda opened this issue Nov 30, 2022 · 1 comment

Comments

@mbelda
Copy link

mbelda commented Nov 30, 2022

Describe the bug
I am trying to generate a workload for multiple Gemmini configurations (with and without convs, etc).
I saw on the systolic_runner readme that I must have some systolic_params.h file that should match a gemmini_params.h file with the details of the Gemmini design I wish to run.

I have generated until now two different designs for Gemmini, specifying on gemmini/configs/GemminiCustomConfigs.scala the desired Gemmini config.

How do i know which configuration of Gemmini corresponds to the gemmini_params.h file I have right now? The last build? Then, I would have to generate the binary for the tests for each design right after generating the design so that the file does not change.

Also, I am missing that systolic_params.h although I built the onnxruntime-riscv with the flag --for_firesim.
How should I proceed?

Urgency
High. I am trying to write a paper with this asap.

System information

  • OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
    Linux ip-192-168-5-162.ec2.internal 3.10.0-1160.66.1.el7.x86_64 Create script in runner to convert opset versions #1 SMP Wed May 18 16:02:34 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
    LSB Version: :core-4.1-amd64:core-4.1-noarch
    Distributor ID: CentOS
    Description: CentOS Linux release 7.9.2009 (Core)
    Release: 7.9.2009
    Codename: Core
  • Firesim version: commit 8c5416c09808c34e674d30ee0d81fa07335d952d (HEAD, tag: 1.14.2)
  • Gemmini version: commit c47cb7f3eb5c18390f176f3a53c43c8546d487d2 (HEAD, tag: v0.6.3)
  • ONNX Runtime installed from: source
  • ONNX Runtime version: commit 7bbd049 (HEAD, origin/2021-05-12)

To Reproduce

  • I just installed firesim with the script provided.
  • Cloned this repo to gemmini/software.
  • Build this repo with the following command ./build.sh --parallel --for_firesim --config=Debug --cmake_extra_defines onnxruntime_USE_SYSTOLIC=ON onnxruntime_SYSTOLIC_INT8=OFF onnxruntime_SYSTOLIC_FP32=ON

Expected behavior
I need to generate a binary for every different configuration of Gemmini.

@hngenc
Copy link
Member

hngenc commented Nov 30, 2022

The last build will overwrite gemmini_params.h, but you will have to copy it over systolic_params_int8.h manually if you are building an integer Gemmini, and over systolic_params_fp32.h if you are building a floating-point Gemmini. You can find both these files in onnxruntime-riscv/onnxruntime/core/mlas/lib/systolic/.

To make it easier to keep track of the different gemmini_params.h files that you generate, you can try setting the headerFileName config option, as in this example. That will generate a header file with the name that you specify, and you can copy it over gemmini_params.h or over systolic_params_*.h manually when you want to use it.

Let me know if any of that doesn't make sense, or if you need more clarification. And good luck with your paper!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants