当前位置:首页 » 编程软件 » 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 程序,生成可执行文件。

热点内容
编译原理for循环三地址码 发布:2024-11-24 15:16:44 浏览:201
php2048 发布:2024-11-24 15:14:49 浏览:894
php旋转图片 发布:2024-11-24 15:03:48 浏览:534
提新车如何查看车辆配置 发布:2024-11-24 14:58:40 浏览:889
编译期多态与运行期多态 发布:2024-11-24 14:47:07 浏览:580
sqlserver连接工具 发布:2024-11-24 14:24:51 浏览:293
怎么排除安卓软件不兼容 发布:2024-11-24 14:24:18 浏览:526
怎么让Win10运行安卓 发布:2024-11-24 14:23:12 浏览:324
什么是设置服务器怎么弄 发布:2024-11-24 14:01:59 浏览:334
u盘加密启动电脑 发布:2024-11-24 13:30:44 浏览:907