注:建议在 new_version_with_notes 目录下尝试本节内容,有更为丰富的细节输出。
在上一节将生成的代码编译成一个动态链接库之后,接下来需要加载动态链接库中写好的推理入口函数,完成推理。
在生成的代码中,在 codegen 目录下,有一个 codegen.cc 文件,里面是一个 Infer 函数,该函数由 5th_codegen/resnet_codegen.cc 中的 CodeGen 函数生成。

Infer 函数也就是推理的主入口函数。
翻回 4th_no_malloc/main.cc 中的代码,主要推理逻辑如下红框所示,而Infer 函数的实现逻辑和红框
本文介绍了如何在C++程序中通过dlopen和dlsym函数从动态链接库加载并调用推理入口函数Infer。详细讲解了动态库加载的过程,包括函数在库中的mangled名称以及如何通过c++filt还原函数符号。同时提供了一个LoadModule函数封装加载过程,简化了主函数中对动态库的调用。
订阅专栏 解锁全文
301

被折叠的 条评论
为什么被折叠?



