RISC-V SIG 預(yù)期隨主線發(fā)布的 openEuler 23.09 創(chuàng)新版本會(huì)集成 LuaJIT RISC-V 支持。本次發(fā)版將提供帶有完整 LuaJIT 支持的 RISC-V 環(huán)境并帶有相關(guān)軟件如 openResty 等軟件的支持。
隨著 RISC-V SIG 主線推動(dòng)工作的進(jìn)展,LuaJIT 和相關(guān)軟件在 RISC-V 架構(gòu)下的支持也被合入到 openEuler 主線代碼中。這標(biāo)志著,openEuler 將成為首個(gè)在主線分支為 LuaJIT 提供 RISC-V 架構(gòu)支持的主流發(fā)行版。
LuaJIT 的優(yōu)勢(shì)與特點(diǎn)
LuaJIT 是一個(gè)高效的 Lua5.1 實(shí)現(xiàn),有高效的解釋器與優(yōu)雅的即時(shí)編譯引擎,擁有相較原版 Lua5.1 平均數(shù)倍的性能,不僅如此,它也有諸如 FFI、Bitop 擴(kuò)展和部分 Lua 高版本的特性?;谝陨显?,LuaJIT 被廣泛使用,成為了事實(shí)上的 Lua5.1/5.2 運(yùn)行時(shí)。
LuaJIT RISC-V 項(xiàng)目背景
LuaJIT RISC-V(簡稱 LJRV)是將 LuaJIT 移植到 64 位 RISC-V 平臺(tái)上的項(xiàng)目,旨在為 RISC-V 平臺(tái)提供一個(gè)高效的 Lua 運(yùn)行時(shí),讓依賴 LuaJIT 的項(xiàng)目在 RISC-V 平臺(tái)上也能無障礙運(yùn)行。此前,相關(guān)工作在國內(nèi)外各個(gè)開源發(fā)行版平臺(tái)仍然屬于技術(shù)空白。
技術(shù)挑戰(zhàn)與工作進(jìn)展
由于 LuaJIT 的核心部分使用匯編編寫,移植到不同指令集平臺(tái)中的復(fù)雜性很大。尤其是 LuaJIT 的 JIT 部分不依賴于如 LLVM 的通用編譯框架,此前僅在 x86、ARM 等平臺(tái)完成移植,而 RISC-V 指令集的移植工作尚未開始,大量依賴 LuaJIT 的軟件包在 RISC-V 架構(gòu)的各個(gè)發(fā)行版上或無法運(yùn)行,或只能使用低速的原版 Lua5.1。
目前,中科院軟件所成功移植了 LuaJIT 的大部分功能,包括 DynASM 動(dòng)態(tài)匯編器,解釋器運(yùn)行時(shí)和 RISC-V 后端,現(xiàn)已通過 PUC Lua5.1 回歸測(cè)試與 LuaJIT 回歸測(cè)試。同時(shí),可以在 RISC-V 64 平臺(tái)上運(yùn)行依賴 LuaJIT 的程序有 Sysbench,Neovim,OpenResty,L?VE 等。已知存在的問題是 Unwinding 功能尚未充分移植,JIT 可能會(huì)出現(xiàn)一些未知的 bug。待相關(guān)工作完成與修復(fù)后,工程會(huì)進(jìn)一步合入上游。
另外在 openEuler 主線上,一些依賴 luajit 的包,都是深度集成形式的,如 openResty,wrk 等,移植工作需要進(jìn)行進(jìn)一步適配。
合入 openEuler 主線
基于 LuaJIT 的移植成果,RISC-V SIG 打包了相關(guān) patch 并且合入了 openEuler 的 LuaJIT master 分支。這意味著從即將發(fā)布的 openEuler 23.09 創(chuàng)新版本開始,openEuler 將原生支持 RISC-V 平臺(tái)的 LuaJIT 以及相關(guān)生態(tài)軟件包,這將是首個(gè)在主線分支為 LuaJIT 提供 RISC-V 架構(gòu)支持的主流發(fā)行版。
同時(shí),在 LuaJIT 開發(fā)工作的基礎(chǔ)上,RISC-V SIG 也為 openResty 等 LuaJIT 強(qiáng)依賴的軟件包提供了相應(yīng)的支持,目前已合入主線。下圖是依賴 LuaJIT 的開源游戲 Minetest 的運(yùn)行演示圖,基于的環(huán)境是 openEuler RISC-V 平臺(tái)和 Unmatched 開發(fā)板。根據(jù)用戶測(cè)試反饋,游戲畫面流暢,操作延遲低。
性能對(duì)比及結(jié)果展示
我們?cè)?VisionFive 2 和 LicheePi 4A 上分別使用 PUC Lua5.1、LJRV 關(guān)閉 JIT、LJRV 開啟 JIT,運(yùn)行了 Lua-Benchmarks。在 TH1520 和 JH7110 環(huán)境的結(jié)果如下:
聯(lián)系我們
如果您對(duì) RISC-V 感興趣,歡迎加入 RISC-V SIG 交流群,討論更多關(guān)于 RISC-V 的更多內(nèi)容,為推動(dòng) openEuler & RISC-V 生態(tài)貢獻(xiàn)力量
關(guān)于作者
楊延玲,中科院軟件所 PLCT 實(shí)驗(yàn)室實(shí)習(xí)生,歐拉開源社區(qū) RISC-V SIG 成員,目前在溫州大學(xué)讀研二,負(fù)責(zé)協(xié)助 RISC-V SIG 和 ROS SIG 的日常運(yùn)營。
審核編輯:湯梓紅
-
移植
+關(guān)注
關(guān)注
1文章
392瀏覽量
28510 -
代碼
+關(guān)注
關(guān)注
30文章
4880瀏覽量
69999 -
RISC-V
+關(guān)注
關(guān)注
46文章
2461瀏覽量
48006 -
openEuler
+關(guān)注
關(guān)注
2文章
324瀏覽量
6199
原文標(biāo)題:獨(dú)家首發(fā)!openEuler 主線集成 LuaJIT RISC-V JIT 技術(shù)
文章出處:【微信號(hào):openEulercommunity,微信公眾號(hào):openEuler】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
淺析RISC-V領(lǐng)先ARM的優(yōu)勢(shì)
rIsc-v的缺的是什么?
RISC-V有哪些特點(diǎn)
什么是RISC-V? RISC-V指令具有哪些特點(diǎn)應(yīng)用?
RISC-V架構(gòu)
談一談RISC-V架構(gòu)的優(yōu)勢(shì)和特點(diǎn)
RISC-V規(guī)范的演進(jìn) RISC-V何時(shí)爆發(fā)?
關(guān)于RISC-V 5大潛力和優(yōu)勢(shì)
【直播預(yù)告】OpenHarmony“芯”進(jìn)展,RISC-V專場(chǎng)
2023 RISC-V中國峰會(huì)籌備進(jìn)展周報(bào)

RISC-V設(shè)計(jì)支持工具,支持RISC-V技術(shù)的基礎(chǔ)
RISC-V生態(tài)強(qiáng)勁 RISC-V International會(huì)員超4000 超75個(gè)技術(shù)工作組
解鎖RISC-V技術(shù)力量丨曹英杰:RISC-V與大模型探索

直播預(yù)約 |開源芯片系列講座第25期:RISC-V架構(gòu)在高性能領(lǐng)域的進(jìn)展與挑戰(zhàn)

圣誕特輯 |開源芯片系列講座第25期:RISC-V架構(gòu)在高性能領(lǐng)域的進(jìn)展與挑戰(zhàn)

評(píng)論