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