Skip to content

Global siminfo#343

Merged
jj16791 merged 78 commits intodevfrom
global-siminfo
Dec 15, 2023
Merged

Global siminfo#343
jj16791 merged 78 commits intodevfrom
global-siminfo

Conversation

@jj16791
Copy link
Copy Markdown
Contributor

@jj16791 jj16791 commented Nov 3, 2023

This PR looks to replace the use of Config.hh and YAML-CPP with SimInfo.hh and a single header yaml library ryml. The SimInfo class acts as a central point for all model configuration values both defined manually and from a read-in yaml config file.

Improvements to adding new config options have been included through a new expectation struct that places requirements on a specific config option and a default value. Through this, default config files can be created and are especially useful in the test suite.

An aside, there seem to be a lot of line changes but ~33K of those are the new header-only ryml library

@FinnWilkinson
Copy link
Copy Markdown
Contributor

Does this PR invalidate issue #322 ?

Comment thread src/include/simeng/config/SimInfo.hh Outdated
@jj16791
Copy link
Copy Markdown
Contributor Author

jj16791 commented Nov 6, 2023

Does this PR invalidate issue #322 ?

The direct define mentioned yes but there are some new defines which can benefit from the suggested change. See commit ea3e85a

Comment thread configs/a64fx_SME.yaml
Comment thread src/include/simeng/GenericPredictor.hh Outdated
Comment thread src/include/simeng/arch/ArchInfo.hh Outdated
Comment thread src/include/simeng/arch/ArchInfo.hh Outdated
Comment thread src/include/simeng/arch/Architecture.hh Outdated
Comment thread src/include/simeng/arch/Architecture.hh Outdated
Comment thread src/include/simeng/arch/aarch64/ArchInfo.hh Outdated
Comment thread src/lib/config/ModelConfig.cc Outdated
Comment thread src/lib/config/ModelConfig.cc Outdated
Comment thread src/lib/config/ModelConfig.cc Outdated
Comment thread src/lib/config/ModelConfig.cc Outdated
Comment thread src/lib/config/ModelConfig.cc
Copy link
Copy Markdown
Contributor

@dANW34V3R dANW34V3R left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lots of things improved greatly in this PR e.g. definition of base config used for testing. Some minor comments but I generally disagree with Finn on the use of the ">>" operator in most places. I think it is much cleaner and easier to read while using the getter function adds a lot more unnecessary syntax. While ">>" requires 2 lines in lots of places, I don't think this is an issue as the getter line often becomes too long and splits over 2 lines anyway

Comment thread CMakeLists.txt
Comment thread test/unit/MockArchitecture.hh Outdated
Comment thread src/include/simeng/arch/aarch64/InstructionGroups.hh
Comment thread src/include/simeng/arch/riscv/InstructionGroups.hh Outdated
Comment thread src/lib/SpecialFileDirGen.cc Outdated
Comment thread src/include/simeng/config/ExpectationNode.hh Outdated
Comment thread src/include/simeng/pipeline/FetchUnit.hh Outdated
Comment thread src/lib/CoreInstance.cc Outdated
Comment thread src/lib/pipeline/FetchUnit.cc Outdated
Comment thread src/include/simeng/RegisterFileSet.hh
Comment thread src/include/simeng/config/SimInfo.hh
Comment thread src/include/simeng/config/ExpectationNode.hh Outdated
Comment thread src/lib/GenericPredictor.cc Outdated
Comment thread src/lib/arch/aarch64/Architecture.cc
Comment thread src/lib/arch/riscv/Architecture.cc
Comment thread src/lib/models/outoforder/Core.cc Outdated
Copy link
Copy Markdown
Contributor

@ABenC377 ABenC377 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a few minor comments -- may not need any changes

@ABenC377 ABenC377 self-requested a review November 9, 2023 16:31
Comment thread src/lib/config/ModelConfig.cc Outdated
Comment thread src/lib/GenericPredictor.cc Outdated
ABenC377
ABenC377 previously approved these changes Nov 10, 2023
Copy link
Copy Markdown
Contributor

@ABenC377 ABenC377 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍🏻

Copy link
Copy Markdown
Contributor

@dANW34V3R dANW34V3R left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor comments

Comment thread docs/sphinx/assets/expectations.png
Comment thread docs/sphinx/developer/models/index.rst Outdated
Comment thread docs/sphinx/developer/models/index.rst
@FinnWilkinson FinnWilkinson added the 0.9.6 Part of SimEng Release 0.9.6 label Dec 14, 2023
Copy link
Copy Markdown
Contributor

@ABenC377 ABenC377 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only one question

Comment thread docs/sphinx/developer/models/index.rst Outdated
ABenC377
ABenC377 previously approved these changes Dec 14, 2023
Copy link
Copy Markdown
Contributor

@FinnWilkinson FinnWilkinson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few Minor points

Comment thread src/lib/arch/aarch64/Architecture.cc
Comment thread src/tools/simeng/main.cc Outdated
@jj16791 jj16791 requested a review from dANW34V3R December 15, 2023 17:14
@jj16791 jj16791 merged commit 7bbf87d into dev Dec 15, 2023
@FinnWilkinson FinnWilkinson deleted the global-siminfo branch February 21, 2024 17:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

0.9.6 Part of SimEng Release 0.9.6 enhancement New feature or request

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

Replace ModelConfig with a custom heirarchical structure Create a global "SimInfo" object Replace YAML.cpp with Rapid Yaml library

5 participants