在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何通過Docker使用香山

中國開放指令生態RISCV聯盟 ? 來源:北京開源芯片研究院 ? 2024-10-29 09:38 ? 次閱讀

以下文章來源于北京開源芯片研究院,作者賈志杰、安旭

本次資源包升級內容

升級了Docker,注意下載鏈接已更新

增加了香山仿真演示

增加了本次使用的香山工具AM、NEMU、difftest的詳細解說

本次整合包適合以下人群使用

零基礎入門,沒有芯片設計經驗的人

沒有Linux操作系統

不想在本地搭建運行環境

想要一步到位,快速上手的心急派

特別說明

整合包基于高性能開源處理器香山制作,是香山團隊傾情打造手把手教學。

這個整合包發布經過“一生一芯”同學們的實戰檢測。歡迎加入QQ群793255484,與小伙伴們一起探討香山使用經驗。

資源包在通過Docker形式提供了運行香山必須的Linux操作系統、香山開發環境、香山和仿真相關工具的代碼,會大大降低自己部署環境和工具的難度,理論上比自己部署要方便。如果想自己配置,可以參看本地使用香山的文檔自行安裝。

電腦配置需求(筆者電腦配置參考)

操作系統:Windows 11

CPU:不做強制性要求,但是性能越高越好

內存:推薦32G+

整合包推薦放在固態硬盤中

通過Docker使用香山第一部分:

準備工作

1. XS-Docker提供了啥、如何下載以及Docker使用學習

a. docker提供:Linux操作系統Ubuntu 20.04、香山開發環境(軟件包和編譯工具鏈)、香山和仿真相關工具的代碼

b. 下載XS-Docker鏈接

提取碼:bv9t

c. Docker安裝使用幫助

(Docker的使用說明非常多,此處是同學自己的學習記錄,歡迎大家交流分享)

2. 運行XS-Docker的命令

注:以下命令中:#符號表示之后文字為注釋,使用時不必復制;<>符號表示變量,需要替換為用戶看到的實際值,符號本身不要保留

bc278436-90d5-11ef-a511-92fbcf53809c.png

最后一步如果成功,命令行界面會變為:

bc49cbea-90d5-11ef-a511-92fbcf53809c.png

這樣就成功進入docker鏡像提供的ubuntu界面。

bc5c7970-90d5-11ef-a511-92fbcf53809c.png

通過Docker使用香山第二部分:

香山仿真演示

我們在 docker 鏡像里提供了預先編譯好的香山仿真模擬程序,可以用它來運行 coremark、linux_hello 等程序。

此處我們暫不解釋各項參數的含義,只先熟悉一下仿真運行程序的整個過程。

從第一部分的最后,進入 ubuntu 界面開始:

bc7eb7a6-90d5-11ef-a511-92fbcf53809c.pngbc9f97aa-90d5-11ef-a511-92fbcf53809c.png

運行成功可以看到類似下圖的輸出:

bcbba710-90d5-11ef-a511-92fbcf53809c.png

如果電腦性能較差,可能在中間卡住較長時間。本人電腦(i5-1240P)小于5分鐘完成。

#給大家展示下機主 CPU 狂燒的樣子,嘎嘎O(∩_∩)O

bcdecdd0-90d5-11ef-a511-92fbcf53809c.pngbcff229c-90d5-11ef-a511-92fbcf53809c.png

如果電腦性能較好,可以嘗試運行更復雜的 linux_hello 程序。

bd1febc6-90d5-11ef-a511-92fbcf53809c.png

運行成功可以看到如下輸出:

bd376288-90d5-11ef-a511-92fbcf53809c.pngbd5c18ee-90d5-11ef-a511-92fbcf53809c.png

通過Docker使用香山第三部分:

本次使用的香山工具解說

1. AM

仿真時用到的 .bin 文件,是測試程序鏡像,將其輸入給 EMU 就可以模擬香山核運行該程序的過程。

獲取 .bin 的方式有多種,最常用是通過 AM 來生成。

AM 是一個裸機運行時環境,我們可以使用 AM 來編譯在香山裸機上運行的程序。

在 AM 的 apps 目錄下提供了一些預置的程序源代碼,比如 coremark、hello、microbench 等。下面以 coremark 為例,演示利用AM編譯生成測試程序鏡像的過程。

bd8a241e-90d5-11ef-a511-92fbcf53809c.png

riscv64-xs 架構進行編譯

bda21be6-90d5-11ef-a511-92fbcf53809c.png

編譯完成后,可以看到新生成的文件夾 build

其中 riscv64-xs 目錄為編譯中間文件,其他三個是編譯產物。

txt 是程序的反匯編文件

bin 是仿真所需的程序鏡像

bdc360a8-90d5-11ef-a511-92fbcf53809c.png

2. NEMU

NEMU 是一個解釋型的指令集模擬器,在仿真過程中它同樣執行程序,為香山提供一個作為對照的正確結果。

bdd6bd7e-90d5-11ef-a511-92fbcf53809c.png

第一步:make riscv64-xs-ref_defconfig

bdf569c2-90d5-11ef-a511-92fbcf53809c.png

第二步:make -j

be157a50-90d5-11ef-a511-92fbcf53809c.png

完成這兩步,才是完成“給香山對照的 nemu”的編譯

編譯生成的結果,在 build 目錄的如下位置

be298888-90d5-11ef-a511-92fbcf53809c.png

3. difftest(差分測試)

difftest 是一個協同仿真框架,它在仿真運行時負責將香山核的輸出與 NEMU 的輸出進行對比,判斷香山是否按照指令集定義的那樣正確運行。

difftest 是驗證香山功能正確性的重要工具,也對我們定位 bug 和解決 bug 提供了極大幫助。

difftest 與香山代碼有較高的耦合,目前是作為一個子模塊放在香山目錄下,在編譯仿真程序 emu 時將自動使用。

在仿真運行(執行 emu 時),通過 --diff 參數指定 nemu 來開啟對比功能,如果不需要對比可以使用 --no-diff 關閉該功能,這時將只進行香山核的仿真。

4. 編譯香山核的仿真程序 EMU

有了前面部分的基礎,這里我們嘗試自行編譯前面仿真演示中使用的香山仿真程序EMU。

這一過程中使用 mill 將香山的 chisel 語言代碼編譯為 Verilog 語言代碼,然后通過 verilator 將 Verilog 代碼編譯為 c++ 語言的仿真模擬程序。

這些步驟已經在香山的 Makefile 里預先配置好了,我們可以通過如下命令直接編譯

be47f296-90d5-11ef-a511-92fbcf53809c.png

解釋參數

emu,表示編譯預設為 emu,目標是編譯仿真程序 EMU。香山還有生成可綜合 Verilog 的預設,具體可見Makefile。

-j32 ,是 make 編譯命令的參數,表示編譯時使用 32 個線程。

后面大寫的參數是對EMU的設置,其中:

CONFIG 指定香山配置,MinimalConfig 是簡化版香山配置,為雙發射,其余內部參數也相應縮減;DefaultConfig 是完整版香山配置,為6發射,需要的編譯時間較長,并且對機器性能有較高要求。不指定 CONFIG 時默認為 DefaultConfig 配置。

EMU_THREADS 指定之后運行 EMU 時可用到的線程

EMU_TRACE=1 指定之后運行 EMU 時候可以打印波形

編譯 MinimalConfig 至少需要 40GB 內存,編譯 DefaultConfig 則推薦 80GB 內存以上。

這一步時間會比較久,需要耐心等待,生成結束后,可以在 ./build/ 目錄下看到一個名為 emu 的仿真程序。

(如果你已經做到這里了,可以在 gitlink 的 howtouseissue 提交截圖獲得獎勵~)

利用 emu 仿真程序,可以讓香山核運行指定的測試程序,進而驗證功能或者測試性能。

emu 的基本用法是:

be70885a-90d5-11ef-a511-92fbcf53809c.png

其中:

-i 指定測試程序鏡像

--diff 指定用于給 difftest 提供對照的 nemu 動態鏈接庫

2> 是 shell 操作,把 std error 的數據(性能計數器的數據)打印到文件,之后可以通過該文件查看性能計數器的結果。這樣避免性能計數器結果和emu執行結果混在一起難以觀察。

emu 還可以打印出波形

可以使用 --dump-wave 參數打開波形,并使用 -b 和 -e 參數設置生成波形的開始和結束周期,例如想要生成 10000 ~ 11000 周期的波形,可以使用如下命令:

be8a2e86-90d5-11ef-a511-92fbcf53809c.png

其中 -b 和 -e 的默認值為 0,注意僅當 -e 參數大于 -b 時才會真正記錄波形;波形文件將會生成在 ./build/ 目錄下,波形格式默認為 vcd。

emu 的更多功能可以使用 help 查看

bea52b46-90d5-11ef-a511-92fbcf53809c.png

歡迎大家來開源芯片社區查看更多香山使用文檔。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19286

    瀏覽量

    229854
  • 操作系統
    +關注

    關注

    37

    文章

    6827

    瀏覽量

    123333
  • 開源
    +關注

    關注

    3

    文章

    3349

    瀏覽量

    42501
  • 命令
    +關注

    關注

    5

    文章

    684

    瀏覽量

    22027
  • Docker
    +關注

    關注

    0

    文章

    458

    瀏覽量

    11857

原文標題:如何通過Docker使用香山

文章出處:【微信號:中國開放指令生態RISCV聯盟,微信公眾號:中國開放指令生態RISCV聯盟】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如意香山筆記本軟件適配工作穩步推進,成功運行多款Linux發行版及國產辦公套件

    工作進展順利,并有可能最快在下周官宣。今天,我們高興地宣布,如意香山本上 Debian 操作系統的適配也已經初步完成,能夠穩定地運行 WPS 等國產辦公套件(通過二進制翻譯的形式)。如意香山本的軟件生態
    發表于 09-02 11:33

    Docker是什么?

    為什么是Docker?盡管現在的Docker已經風靡全球,但還是有很多開發者(特別是嵌入式開發者)對Docker認識還是僅僅停留在它的服務器應用上面。殊不知,Docker已經是微軟Az
    發表于 10-28 07:11

    香山是什么?“香山” 高性能開源 RISC-V 處理器項目介紹

    修改歷史均在 Git 提交記錄中可見。香山處理器的物理設計流程主要由我們在鵬城實驗室的后端與 SoC 工程師團隊完成。我們希望通過持續不斷的優化與流片驗證,逐步提高香山處理器的 PPA 水平,讓
    發表于 04-07 14:20

    docker基礎知識和使用bmnnsdk時的docker常用命令

    的物理機上運行一樣。有了 Docker,就不用擔心環境問題。 1.2 image文件與容器container Docker 把應用程序及其依賴,打包在 image 文件里面。只有通過這個文件,才能
    發表于 09-18 07:59

    Docker監控實戰分析

    Docker 優勢 那為什么 Docker 越來越火呢?一談起 Docker 總是會跟著讓人聯想到輕量這個詞,甚至會有一種通過 Docker
    發表于 10-13 17:05 ?2次下載
    <b class='flag-5'>Docker</b>監控實戰分析

    淺析Docker鏡像本地存儲機制及容器啟動原理

    Docker 鏡像不是一個單一的文件,而是有多層構成。我們可通過 docker images 獲取本地的鏡像列表及對應的元信息, 接著可通過dock
    發表于 10-19 14:17 ?2529次閱讀

    Docker—簡介與鏡像用法

    阿里云官方鏡像站: ??https://developer.aliyun.com/mirror/?utm_content=g_1000303593?? ? 一、容器簡介 Docker是管理容器的引擎
    發表于 11-25 16:28 ?515次閱讀
    <b class='flag-5'>Docker</b>—簡介與鏡像用法

    docker-cleanup Docker清理腳本

    docker-cleanup.zip
    發表于 04-29 10:03 ?0次下載
    <b class='flag-5'>docker</b>-cleanup <b class='flag-5'>Docker</b>清理腳本

    Docker鏡像的詳細講解

    本文是對 Docker 鏡像的詳細講解,講解了如何安裝 Docker、配置 Docker 鏡像加速以及操作 Docker 鏡像。希望對大家有所幫助~
    的頭像 發表于 08-02 10:00 ?2185次閱讀

    docker 搜索鏡像,docker查看鏡像詳細信息(docker下載鏡像命令)

    Docker Hub是集中管理的Docker鏡像注冊中心。通過Docker 用戶可以在注冊中心搜索、下載和使用CLI命令行工具中的鏡像。以下是常用的
    的頭像 發表于 07-19 09:46 ?1860次閱讀

    linux關閉docker的命令

    在 Linux 系統中,關閉 Docker 的操作可以通過以下多種方式進行。本文將詳細講解每一種方式,并提供示例代碼和命令,以幫助讀者更好地理解和實踐。 使用 docker 命令 最常用的方法
    的頭像 發表于 11-23 09:39 ?2841次閱讀

    如何啟動本機docker服務

    在本機上安裝DockerDocker支持多個操作系統,包括Linux、Windows和Mac OS等。根據你使用的操作系統,選擇對應的安裝方式進行安裝。 對于Linux系統,可以通過以下命令來安
    的頭像 發表于 11-23 09:43 ?2177次閱讀

    docker核心組件有哪些

    Docker 是一種開源的容器化平臺,它能夠實現將應用程序及其依賴項打包到一個可移植的容器中,從而實現快速、可重復、可擴展的部署和管理。Docker 的核心組件包括 Docker Engine
    的頭像 發表于 11-23 09:47 ?1951次閱讀

    docker內存不足的解決辦法

    內存和CPU。通過這個命令,我們可以發現哪個容器占用了大量的內存資源。 調整Docker守護進程的內存限制: Docker守護進程本身也會消耗一些內存資源。我們可以通過修改
    的頭像 發表于 11-23 10:41 ?2641次閱讀

    精通Docker網絡:Bridge驅動深度解析

    除了使用 docker0 網橋外,用戶還可以使用自定義的網橋,然后通過 --bridge=BRIDGE 參數傳遞給 docker daemon。
    的頭像 發表于 03-31 15:58 ?1451次閱讀
    精通<b class='flag-5'>Docker</b>網絡:Bridge驅動深度解析
    主站蜘蛛池模板: 色偷偷偷偷| 六月婷婷激情| 亚洲二区视频| 99视频热| 四虎影院成人| 免费一级欧美片片线观看| 成年女人毛片免费视频| 视频免费观看网址| 五月综合色啪| xxxx性xxxx| 久久精品国产夜色| 亚洲爱v| 成人国产永久福利看片| 亚色视频在线| 女人张开腿让男人捅爽| 在线观看永久免费视频网站| 久久精品国产精品亚洲红杏| 永久免费av网站| 网络色综合久久| 激情五月综合网| 手机看片福利在线| 国产美女精品久久久久中文| 天堂网在线免费| 国产你懂的在线| 久久久这里有精品999| 性刺激的欧美三级视频| 男人的天堂色偷偷| 毛片视频免费网站| 亚洲jizzjizz妇女| 黄 色 免 费 网站在线观看| 日操| 免费的黄视频| 欧美日韩国产在线一区| 天天在线干| 深夜福利欧美| 欧美sese| fenfencao在线观看免费视频| 最近2018年在线中文字幕高清| 日本高清视频在线www色| 夜夜操网| 亚洲福利视频一区二区|