我怎样才能编译并运行此程序?我是指在哪个文件夹中存储该程序文件(matmul.c)以进行编译?我如何创建这个程序的目标文件?
如何交叉编译图像不是gem5特定的,所以我将简要介绍一下。
首先,您必须获取图像的交叉编译器。
要做到这一点,最好的方法是从图像相同的源获取交叉编译器以确保兼容性。
我的首选方法是使用最小的Buildroot图像。 Buildroot里面:
- 建立两个交叉编译器和图像对我来说,这样确保兼容性
- 可以很容易地自动建立新的软件,其包装系统
- 可以产生非常简单的图像,这是更适用于gem5和架构研究
这是my setup on GitHub。它包含一个最小的OpenMP hello world,我已经在gem5中成功运行了。
另一个很好的选择是使用https://crosstool-ng.github.io/
既然你想支持OpenMP,你必须建立在GCC的交叉编译器编译器的支持。
,我认为这是在做GCC有:
./configure --enable-libgomp
或通过Buildroot里面选择:
BR2_GCC_ENABLE_OPENMP=y
然后编译时,你必须通过-fopenmp
选项gcc
。
如何更改处理器数量和缓存内存大小?
回答这个问题,自己是使用类似的最佳方式:
./build/ARM/gem5.opt configs/example/fs.py -h
和搜索选项。
您遇到:
-n NUM_CPUS, --num-cpus=NUM_CPUS
。
对于ARM还需要通过.dtb
与相应的核心数量,例如:./system/arm/dt/armv7_gem5_v1_2cpu.dtb
2个核心。
缓存:你会很容易找到以下选项:
--caches --l1d_size=1024 --l1i_size=1024 --l2cache --l2_size=1024 --l3_size=1024
但要记住的是:
[如何gem5运行OpenMP的代码?](http://stackoverflow.com/questions/42636993/how-to-run-openmp-code-in-gem5) – Zulan
做可能的复制如果你没有得到任何回应,不要只是重新发布一个问题。想想如何让它更清晰,更具体,更容易回答。 –
您的帖子中有很多问题,这并不好。这里我们主要解决具体的问题。如果您收到一条错误消息,并且您不知道为什么,那是一个很好的问题。询问完整的教程不是一个好问题,可以作为**太brad **或**不清楚**。 –