CMU-SAFARI / ramulator2

Ramulator 2.0 is a modern, modular, extensible, and fast cycle-accurate DRAM simulator. It provides support for agile implementation and evaluation of new memory system designs (e.g., new DRAM standards, emerging RowHammer mitigation techniques). Described in our paper https://people.inf.ethz.ch/omutlu/pub/Ramulator2_arxiv23.pdf
https://arxiv.org/abs/2308.11030
MIT License
252 stars 62 forks source link

DDR5 RFM is not specified #16

Closed jyk2498 closed 10 months ago

jyk2498 commented 1 year ago

Hi everyone

I modified the 'example_config.yaml' file to run DDR5, but when I try to run it, I encounter the following error message:

terminate called after throwing an instance of 'Ramulator::ConfigurationError' what(): ParamGroup "RFM" is not specified for implementation "DDR5". Aborted (core dumped)

How can I resolve this issue?

Thanks.

RichardLuo79 commented 1 year ago

Hi,

Could you share the YAML configuration file here?

ankenman commented 1 year ago

I can reproduce this issue with this config:

Frontend:
  impl: GEM5

  Translation:
    impl: RandomTranslation
    max_addr: 2147483648

MemorySystem:
  impl: GenericDRAM
  clock_ratio: 4

  DRAM:
    impl: DDR5
    org:
      preset: DDR5_8Gb_x4
      channel: 1
      rank: 1
    timing:
      preset: DDR5_3200AN

  Controller:
    impl: Generic
    Scheduler:
      impl: FRFCFS
    RefreshManager:
      impl: AllBank
    plugins:

  AddrMapper:
    impl: RoBaRaCoCh
jyk2498 commented 1 year ago

below is the yaml file that I ran:

Frontend:
  impl: SimpleO3
  clock_ratio: 8
  num_expected_insts: 300000
  traces: 
    - example_inst.trace

  Translation:
    impl: RandomTranslation
    max_addr: 2147483648

MemorySystem:
  impl: GenericDRAM
  clock_ratio: 3

  DRAM:
    impl: DDR5
    org:
      preset: DDR5_16Gb_x8
      channel: 1
      rank: 2
    timing:
      preset: DDR5_3200AN

  Controller:
    impl: Generic
    Scheduler:
      impl: FRFCFS
    RefreshManager:
      impl: AllBank
    plugins:

  AddrMapper:
    impl: RoBaRaCoCh
jarrett-m commented 1 year ago

in the config you need to specify what RMF you want to use, you need the param but if you dont add anything after it just defaults

Frontend:
  impl: SimpleO3
  clock_ratio: 8
  num_expected_insts: 300000
  traces:
    - example_inst.trace

  Translation:
    impl: RandomTranslation
    max_addr: 2147483648

MemorySystem:
  impl: GenericDRAM
  clock_ratio: 3

  DRAM:
    impl: DDR5
    org:
      preset: DDR5_8Gb_x4
      channel: 1
      rank: 2
    timing:
      preset: DDR5_3200AN
    RFM:
      #this will choose a default RFM in ddr5.cpp, but you need the RFM: part

  Controller:
    impl: Generic
    Scheduler:
      impl: FRFCFS
    RefreshManager:
      impl: AllBank
    plugins:

  AddrMapper:
    impl: RoBaRaCoCh