當前位置:首頁 » 編程軟體 » JIT編譯典型流程

JIT編譯典型流程

發布時間: 2024-09-26 01:08:43

『壹』 jit的含義是什麼

1. JIT是"Just-In-Time"的縮寫,廣泛應用於兩個領域:工業准時生產系統和編程中的即時編譯器。
2. 工業准時生產系統(JIT)是指產品生產能夠精確地滿足客戶在時間、質量和數量上的需求。無論客戶是最終用戶還是生產線上的其他環節,JIT都能確保產品按時交付。
3. 在JIT系統中,企業不會為防止配送延遲而儲備多餘的材料和部件。相反,配送到生產現場的部件和材料正好滿足生產需求,從而減少庫存成本。
4. 在編程領域,JIT代表即時編譯器。這種編譯器在程序運行時將機器碼即時編譯並保存,以便下次使用。理論上,這可以提高程序性能,使其接近傳統的編譯器編譯技術。
5. JIT的工作過程強調按需生產。企業根據客戶實際需求生產產品,確保產品種類、數量和時間與客戶需求完全匹配。這種方法可以減少庫存積壓,降低企業成本。

『貳』 jit的含義是什麼

jit是just in time的縮寫,常用的有兩個領域,一個是工業中的准時生產系統,一個編程中即時編譯編譯器的縮寫。

准時生產方法是指生產的產品能夠精準地滿足客戶在時間、質量和數量上的需求,無論客戶是產品的最終用戶還是處於生產線上的其他流程。採用JIT時,配送到生產現場的部件和材料正如生產所需,企業不會為防止發生配送延遲的情況而儲備材料和部件。

工業准時生產方法的核心

准時生產方法就是強調企業生產產品的時候,應該完全按照客戶的需求來生產,客戶什麼時間需要,就什麼時間生產出來,客戶需要什麼品種,就生產什麼品種,客戶需要多大量,就生產多大量,如果真正能做到這種程度,意味著企業生產出的產品馬上就可以轉移出去。

所以這種方法的核心就是按需生產,如果能實現按需生產,伴隨著產品及時地轉移,企業的存貨庫存就會不斷降低,伴隨著存貨的不斷降低,企業有關的成本也就會不斷降低。

『叄』 Windows 下編譯 LuaJIT

這里使用 Visual studio 自帶的命令行工具來進行編譯,所以需要安裝好VS。

首先打開VS命令行工具。可以按 Win + S ,輸入 prompt 來找到它。如圖。

解壓 LuaJIT 源碼,並進入到解壓目錄 /src 下。輸入 msvcbuild 開始編譯。

看到 === Successfully built LuaJIT for xxxxx === 則是編譯成功了。
在解壓目錄 /src 下可以找到編譯生成的 luajit.exe 和 lua51.dll .

打開cmd。
如果沒有添加環境變數則先定位到LuaJit安裝目錄。
輸入 luajit +文件名 即可運行Lua腳本
輸入 luajit -b +Lua腳本+目標文件名,即可編譯腳本。

『肆』 使用MLIR完成一個端到端的編譯流程 -- 一條通路

本文將深入探討如何使用 MLIR 實現一個端到端的編譯流程。以 TensorFlow 倉庫中的簡單示例作為起點,我們將通過一個具體的編譯通路,詳細介紹從 pbtxt 到最終執行的全過程。


首先,考慮 TensorFlow 倉庫中提供的示例,我們將計算圖保存為名為 add.pbtxt 的文件。接下來的關鍵步驟是將 pbtxt 文件翻譯為 MLIR 格式。這一步通過使用 tf-mlir-translate 工具完成,該工具可以根據指定的輸入輸出類型和尺寸進行翻譯,最終生成 MLIR 文件。


接下來,我們將沿著一條特定的通路,從 TensorFlow Dialect 逐步轉換至最終的 linalg Dialect。這一系列轉換包括:



  • 從 TensorFlow Dialect 轉換至 hlo Dialect

  • 從 hlo Dialect 轉換至 lhlo Dialect

  • 從 lhlo Dialect 轉換至 linalg Dialect


這些轉換由 TensorFlow 社區維護,確保了計算圖的合理表示。而從 linalg Dialect 之後的編譯過程及基礎設施,則由 MLIR 社區負責。


在這一階段,為了使計算圖能夠運行,我們需要手動修改代碼。這是因為在原始的計算圖中,僅表示了中間的計算過程,而忽略了輸入數據。我們關注的是將計算圖轉換為 linalg Dialect 這一層次的表示,此時計算圖已轉變為一個包含 main 函數的程序,輸入輸出參數為 memref<10xi32>,其中的計算過程為將輸入輸出進行加和。


接下來,我們有兩條路徑可以選擇,以運行代碼:



  • 使用 MLIR 的 JIT 即時編譯引擎(mlir-cpu-runner)

  • 通過 C 程序調用 MLIR 的函數並生成可執行文件


採用 JIT 編譯引擎方法時,我們需要在 MLIR 文件中提供輸入數據。具體實現包括在 MLIR 文件中定義 @alloc_filled_i32 函數用於提供輸入數據,並在 main 函數中調用 @print_memref_i32 函數以列印計算結果。然後,使用 mlir-cpu-runner 執行 MLIR 程序。


另一種方法是使用 C 程序調用 MLIR 的函數,最終生成可執行文件。這要求修改 MLIR 代碼,將 linalg Dialect 層次的函數重命名,並在 C 程序中調用。具體步驟包括定義 C 程序中的輸入輸出參數,並在程序中調用 MLIR 函數。生成 C 介面時,使用選項 `-convert-std-to-llvm='emit-c-wrappers=1'`,確保生成的介面為 `_mlir_ciface_tf_add`。最終,通過鏈接 MLIR 目標文件和 C 程序,生成可執行文件。

熱點內容
電腦和雲伺服器的區別 發布:2024-09-26 03:12:28 瀏覽:53
網頁源碼在線 發布:2024-09-26 02:36:09 瀏覽:44
絕地求生國際服應該選什麼伺服器 發布:2024-09-26 01:31:37 瀏覽:140
空壓機980密碼是多少 發布:2024-09-26 01:21:33 瀏覽:297
緩存命中率cdn 發布:2024-09-26 01:20:58 瀏覽:917
excel2007如何加密 發布:2024-09-26 01:11:40 瀏覽:956
php獲取當前用戶 發布:2024-09-26 01:10:52 瀏覽:311
繼續訪問取消 發布:2024-09-26 01:09:35 瀏覽:52
JIT編譯典型流程 發布:2024-09-26 01:08:43 瀏覽:207
碼流264和265影響存儲 發布:2024-09-26 00:54:42 瀏覽:887