gem5初探

開始入門gem5

這個實驗的具體內容就是gem5輸出矩陣乘的訪存trace,然後做個cache模擬器分析,我主要是入門一下gem5.我的系統是ubuntu16.04,主要流程如下

  1. 從github下載源碼
    git clone https://github.com/gem5/gem5.git
    解壓之後在解壓目錄執行chmod -R 777 .(這算是一個坑)

  2. 安裝一堆需要的軟件

    sudo apt-get install mercurial scons swig gcc m4 python python-dev libgoogle-perftools-dev g++ libprotobuf-dev
    sudo apt-get install build-essential
    sudo apt-get install libboost-dev
    # 安裝2.6.1版本的protoc用於輸出trace
    sudo apt-get install protoc
    
  3. 編譯gem5,這裏需要按照指定的架構來編譯,我們編譯的是ARM架構的,也可以編譯X86架構的

    scons build/ARM/gem5.opt -j8

  4. 然後想要在gem5上執行arm程序,需要在x86架構上安裝交叉編譯工具

    sudo apt-get install gcc-arm-linux-gnueabi

  5. 執行編譯,注意要靜態編譯(第二個坑)

    arm-linux-gnueabi-gcc -static xxx.c -o a.out

  6. 執行程序

    build/ARM/gem5.opt --outdir=memaccess --debug-flag=DRAM --debug-file=dram.out configs/example/se.py –c a.out

    這裏我遇到一個問題,就是提示沒有參數,我就打開了se.py文件看了一下它的代碼,發現在解析參數的地方有點問題,我也不清楚是因爲python的原因還是啥原因,我就把se.py文件裏解析參數的地方直接options.cmd="./a.out",這樣暫時就能用了(第三個坑)

  7. 最後就能夠在對應的文件夾底下找到想要的訪存trace啦~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章