90、利用JIT编译技术完成对生成的代码的编译

本文介绍了在程序运行时通过JIT(Just In Time)编译技术对codegen生成的代码进行编译的过程。讲解了如何利用std::system函数在运行时执行编译命令,使用g++编译源代码并链接外部库,生成动态链接库。建议使用带有注释的新版代码进行学习,为后续加载函数进行模型推理做准备。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在完成代码生成后,就需要对生成的代码进行编译,这里采用一种叫做 jit 的编译技术来进行。

所谓 jit,就是just in time,可以理解为实时编译,它是在程序运行过程中对程序生成的一些中间文件进行编译,从而生成机器码的技术。

对应到 codegen 场景下,由于 codegen 中生成的代码是在程序运行时生成的,因此很适合使用 jit 编译来进行。

进行 jit 编译

那么怎么在程序运行时进行编译呢?

其中很重要的一步,是需要将编译命令嵌入到程序中,在程序运行时以系统调用的形式来执行编译命令。

在5th_codegen/resnet_codegen.cc 中,封装了一个 CompileModule 函数,用来完成对生成的代码文本的 jit 编译过程。

  1. 使用 std::system 函数来完成对于系统命令的调用。

    system 函数可以调用任意的系统命令,例如在 linux 环境下的返回上一级目录的命令(cd ..) ,可以使用 std::sy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董董灿是个攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值