日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
香山處理器仿真環(huán)境搭建-創(chuàng)新互聯(lián)

香山處理器產(chǎn)生的前因后果就不介紹了,有興趣的讀者可以查看香山的官方文檔,其中已經(jīng)有詳細(xì)的介紹。另外本文也不是從零開(kāi)始搭建香山的開(kāi)發(fā)環(huán)境,官方文檔‘前端開(kāi)發(fā)環(huán)境’已經(jīng)體貼的給我們做好了一鍵實(shí)現(xiàn)環(huán)境搭建的repo。

目前創(chuàng)新互聯(lián)建站已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、牟定網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

先描述下我的工作環(huán)境:

vmware:32G物理內(nèi)存,50G disk,4核CPU

OS:ubuntu 18.04

環(huán)境不同的僅做參考。第一次寫(xiě)博,有錯(cuò)誤和不成熟的地方還請(qǐng)各位大牛批評(píng)指正,小弟拜謝了。

先按照官方文檔中下載xs-env

>>git clone https://github.com/OpenXiangShan/xs-env
>>cd xs-env
>>sudo -s ./setup-tools.sh # use apt to install dependencies, you may modify it to use different pkg manager

setup-tools.sh中完成了編譯香山核所需的工具安裝,其中會(huì)下載并編譯verilator,一個(gè)開(kāi)源仿真工具,也是香山核官方支持的開(kāi)源仿真工具,當(dāng)前香山核也支持vcs仿真,但貌似支持力度不是特別好;此腳本的另一個(gè)主要功能就是下載mill,mill是scala的構(gòu)建工具,類(lèi)似于sbt,貌似很多人都從sbt遷移到了mill,在github下載速度實(shí)現(xiàn)讓人無(wú)法忍受,經(jīng)過(guò)無(wú)數(shù)次失敗后終于下載下來(lái),為了讓小伙伴們不在經(jīng)歷這個(gè)過(guò)程,已將mill-0.9.8放到了gitee上,下載后放到~/.cache/mill/download/0.9.8即可使用,注意/usr/bin/mill其實(shí)是個(gè)腳本,用于檢查~/.cache/mill/download/0.9.8文件是否存在,不存在時(shí)會(huì)從https://github.com/lihaoyi/mill/releases/download/0.9.8/0.9.8-assembly下載mill可執(zhí)行文件,然后調(diào)用~/.cache/mill/download/0.9.8運(yùn)行chisel代碼構(gòu)建。

完成上面的工具下載安裝后,開(kāi)始下載香山核編譯運(yùn)行所需的代碼倉(cāng)

>>source setup.sh

在這步,會(huì)下載XiangShan,NEMU,nexus-am和nutshell。NEMU是一個(gè)款類(lèi)似spike的risc-v指令模擬器,nexus-am是香山所使用的應(yīng)用開(kāi)發(fā)框架,nutshell是另一款開(kāi)源risc-v核,可能是前期做對(duì)比或開(kāi)發(fā)使用。香山使用了difftest測(cè)試框架,會(huì)比較每條指令在程序運(yùn)行的過(guò)程中的正確與否,NEMU就是difftest的golden model。

下載完上面的代碼后,setup.sh中會(huì)自動(dòng)編譯NEMU和nexus-am中的coremark,這里還需要說(shuō)下NEMU有兩種工作模式:作為單獨(dú)可執(zhí)行程序的工作模式和golden model模式。兩種模式的編譯目標(biāo)不同,單獨(dú)可執(zhí)行程序編譯時(shí)指定riscv64-xs_defconfig,生成的文件是buidl/riscv64-nemu-interpreter;golden model模式編譯時(shí)指定riscv64-xs-ref_defconfig,生成文件是riscv64-nemu-interpreter-so。

編譯NEMU時(shí)又報(bào)錯(cuò)了

xs-env/NEMU/include/checkpoint/path_manager.h:24:10: fatal error: filesystem: No such file or directory
 #include

NEMU中用到了C++17的特性,需要將gcc/g++升級(jí)到8.x版本以上(想升級(jí)到9.x也不行啊,ubuntu 18.04中沒(méi)有g(shù)cc9.x的版本),通過(guò)使用apt安裝gcc-8并配置update-alternatives:

>>sudo apt install gcc-8
>>sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8
>>sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 700 --slave /user/bin/g++ g++ /usr/bin/g++-7
>>sudo update-alternatives --config gcc
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).

  Selection    Path            Priority   Status
------------------------------------------------------------
  0            /usr/bin/gcc-8   800       auto mode
* 1            /usr/bin/gcc-7   700       manual mode
  2            /usr/bin/gcc-8   800       manual mode

Pressto keep the current choice[*], or type selection number: 0
update-alternatives: using /usr/bin/gcc-8 to provide /usr/bin/gcc (gcc) in auto mode

在編譯過(guò)程中還出現(xiàn)了一次cmake版本太低的錯(cuò)誤,編譯需要cmake 3.14以上,但ubuntu apt中最高只能到3.10,cmake官網(wǎng)下載速度實(shí)在讓人淚目,還好在gitee上找到了3.19版本的鏡像倉(cāng):

cmake-release: cmake release repo

下載后解壓縮,然后將其中的bin目錄加到PATH中即可。

OK,現(xiàn)在代碼都已經(jīng)準(zhǔn)備好了,開(kāi)始編譯香山核。

>>cd xs-env/XiangShan
>>make init
>>make emu CONFIG=MinimalConfig EMU_TRACE=1 -j4

make init會(huì)下載香山代碼倉(cāng)所用到的子模塊,make emu的參數(shù)請(qǐng)參考官方文檔說(shuō)明,-j4這里選擇4是因?yàn)槲业膙mware中只有4個(gè)虛擬CPU核。

編譯過(guò)程中出現(xiàn)錯(cuò)誤。。。

Connection:[logTimestamp] type:[func] source location:[SimTop] sink location:[BusPerfMonitor_1]
Connection:[XSPERF_CLEAN] type:[func] source location:[SimTop] sink location:[BusPerfMonitor_1]
Connection:[XSPERF_DUMP] type:[func] source location:[SimTop] sink location:[BusPerfMonitor_1]
Connection:[DISPLAY_LOG_ENABLE] type:[func] source location:[SimTop] sink location:[BusPerfMonitor_1]
1 targets failed
XiangShan.test.runMain subprocess failed
Makefile:102: recipe for target 'build/SimTop.v' failed

沒(méi)啥提示就直接failed,郁悶了一陣,根據(jù)文檔中所講,到troubleshoot中查找了下,應(yīng)該是內(nèi)存不夠?qū)е碌?,香山核編譯時(shí)在MinimalConfig配置下需要至少32G內(nèi)存,標(biāo)準(zhǔn)配置最少需要64G內(nèi)存,通過(guò)如下方法修改:

1. 修改XiangShan/build.sc中的參數(shù)

override def forkArgs = Seq("-Xmx64G", "-Xss256m")

改成

override def forkArgs = Seq("-Xmx24G", "-Xss256m")

我的虛擬機(jī)有32G內(nèi)存,為了保險(xiǎn)這里設(shè)置為24G內(nèi)存,請(qǐng)大家根據(jù)自己的PC配置自行確定此參數(shù)。

2. 物理內(nèi)存不能滿(mǎn)足需求而又不想在加錢(qián)買(mǎi)內(nèi)存,使用swap來(lái)補(bǔ)充,這里我在vmware中新增了一塊100G的虛擬硬盤(pán),專(zhuān)門(mén)作為swap,即便是標(biāo)準(zhǔn)配置的香山核也可以編譯了:)。關(guān)閉虛擬機(jī)新增scsi接口硬盤(pán)后再啟動(dòng),然后在終端中操作

>>sudo mkswap -f /dev/sdb
>>sudo swapon /dev/sdb

新增的硬盤(pán)在我的vmware中顯示的/dev/sdb。

重新執(zhí)行make emu CONFIG=MinimalConfig EMU_TRACE=1 -j4,經(jīng)過(guò)漫長(zhǎng)的等待終于編譯完成了,迫不及待的跑個(gè)仿真:

>>./build/emu -i ready-to-run/coremark-2-iteration.bin

運(yùn)行成功!

Emu compiled at Dec  4 2022, 19:33:27
Using simulated 32768B flash
[warning]no valid flash bin path, use preset flash instead
The image is ready-to-run/coremark-2-iteration.bin
Using simulated 8192MB RAM
--diff is not given, try to use $(NEMU_HOME)/build/riscv64-nemu-interpreter-so by default
NemuProxy using /home/fenghang/xs-env/NEMU/build/riscv64-nemu-interpreter-so
The first instruction of core 0 has commited. Difftest enabled. 
[NEMU] Can not find flash image: (null)
[NEMU] Use built-in image instead
[src/device/io/mmio.c:39,add_mmio_map] Add mmio map 'flash' at [0x0000000010000000, 0x00000000100fffff]
Running CoreMark for 2 iterations
2K performance run parameters for coremark.
CoreMark Size    : 666
Total time (ms)  : 5210
Iterations       : 2
Compiler version : GCC10.2.0
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0x72be
Finised in 5210 ms.
==================================================
CoreMark Iterations/Sec 383
Core 0: HIT GOOD TRAP at pc = 0x800026ba
total guest instructions = 626,872
instrCnt = 626,872, cycleCnt = 587,010, IPC = 1.067907
[PERF ][time=              587011] TOP.SimTop.l_soc.core_with_l2.core.frontend.icache.missUnit.prefEntries_0: PrefetchEntryReq2,                    0
[PERF ][time=              587011] TOP.SimTop.l_soc.core_with_l2.core.frontend.icache.missUnit.prefEntries_1: PrefetchEntryReq2,                    0
[PERF ][time=              587011] TOP.SimTop.l_soc.core_with_l2.core.exuBlocks.scheduler.fpBusyTable: busy_count,                    0
[PERF ][time=              587011] TOP.SimTop.l_soc.core_with_l2.core.exuBlocks_1.scheduler.fpBusyTable: busy_count,                    0
[PERF ][time=              587011] TOP.SimTop.l_soc.core_with_l2.core.exuBlocks.scheduler.intBusyTable: busy_count,              3289028

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


當(dāng)前標(biāo)題:香山處理器仿真環(huán)境搭建-創(chuàng)新互聯(lián)
文章鏈接:http://www.dlmjj.cn/article/csdodh.html