我如何知道gem5命令行选项例如--cpu-type的可选选项?

问题描述

gem5中有许多可能和可选的选择。例如,我可以通过--debug-help命令显示--debug-flags分配的所有可能的调试选项。但是我怎么知道--cpu-type分配的可选选项是否有像--cpu-type-help这样的命令来显示--cpu-type的可选分配?我运行了gem5.opt help的命令,但没有看到关于--cpu-type的介绍。

解决方法

除了Ciro's answer外,还有多次命令列出了对象类型的可能值,而无需提供随机值。例如,在--cpu-type的情况下,有一个--list-cpu-types可以完全满足您的要求,而无需额外的(随机)参数。

通常,这些命令采用--list-x-types格式,其函数回调定义在文件 configs / common / Options.py 的开头(例如,对于CPU类型,是_listCpuTypes)。

添加更多列表就像为选定的基类添加相应的ObjectList configs / common / ObjectList.py )实例一样容易。例如,this patch将先前的代码移植给预取程序以使用ObjectList

,

对于--cpu-type,如果您在CLI上键入任何错误的值,例如:

--cpu-type adsf

错误消息显示可能的选择:

fs.py: error: option --cpu-type: invalid choice: 'asfd' (choose from 'O3_ARM_v7a_3','AtomicSimpleCPU','TraceCPU','ex5_big','DerivO3CPU','MinorCPU','HPI','ex5_LITTLE','NonCachingSimpleCPU','TimingSimpleCPU')

这也可以从源代码(configs / common / Options.py)中轻松看到:

    parser.add_option("--cpu-type",type="choice",default="AtomicSimpleCPU",choices=ObjectList.cpu_list.get_names(),

其中cpu_list定义为(configs / common / ObjectList.py):

cpu_list = CPUList(getattr(m5.objects,'BaseCPU',None))

我们从中推断出有效的选择是BaseCPU派生的类。

gem5 6bc2111c9674d0c8db22f6a6adcc00e49625aabd。