专栏名称: GitHubStore
分享有意思的开源项目
目录
相关文章推荐
鸡西新闻网  ·  【夜读】能扛事,也是一种才华横溢 ·  2 天前  
洞见  ·  人到中年,不要入戏太深 ·  4 天前  
51好读  ›  专栏  ›  GitHubStore

MLIR-EmitC:将 ML 模型转换为 C++ 代码的工具

GitHubStore  · 公众号  ·  · 2024-04-10 07:32

正文

项目简介


MLIR-EmitC 提供了一种将 ML 模型转换为 C++ 代码的方法。该存储库包含脚本和工具,用于将 Keras 和 TensorFlow 模型转换为 TOSA 和 StableHLO 方言,并将其转换为 EmitC。后者用于生成对引用实现的调用。

EmitC 方言本身以及 C++ 发射器是 MLIR 核心的一部分,不再通过此存储库提供。

签入此存储库的初始 EmitC 方言和C++发射器是从 https://reviews.llvm.org/D76571 分叉出来的。

免责声明:这是一个研究项目,不适用于日常使用。该代码在没有任何支持的情况下可用。但是,我们欢迎通过问题跟踪器提供任何形式的反馈。

开始

克隆

git clone https://github.com/iml130/mlir-emitc.gitcd mlir-emitcgit submodule update --init


构建和运行

构建 EmitC 有两种变体:作为 LLVM/MLIR 构建的一部分(通过 LLVM 外部项目机制)和针对预构建的 LLVM/MLIR。

使用预构建的 LLVM/MLIR 进行构建

安装程序假定您已在其中 $BUILD_DIR 构建了 LLVM 和 MLIR,并将它们安装到 $PREFIX 。您可以使用 build_tools/build_mlir.sh shell 脚本来配置、构建和安装 LLVM 和 MLIR。

注意:最新测试的 LLVM 版本的哈希值在 build_tools/llvm_version.txt 中给出。由于 MLIR 发展迅速,因此 EmitC 可能无法使用更新的 LLVM 进行构建。

若要生成并启动测试,请运行

mkdir build && cd buildcmake -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ .. -DMLIR_DIR=$PREFIX/lib/cmake/mlir -DLLVM_EXTERNAL_LIT=$BUILD_DIR/bin/llvm-litcmake --build . --target check-emitc


作为 LLVM/MLIR 构建的一部分进行构建

MLIR-EmitC 也可以使用该 LLVM_EXTERNAL_PROJECTS 机制作为 LLVM/MLIR 构建的一部分进行构建(参见 https://llvm.org/docs/CMake.html)。

若要生成并启动测试,请运行

mkdir build && cd buildcmake -G Ninja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -DEMITC_ENABLE_HLO=OFF -DLLVM_ENABLE_PROJECTS=mlir -DLLVM_EXTERNAL_PROJECTS="mlir-emitc" -DLLVM_EXTERNAL_MLIR_EMITC_SOURCE_DIR=`realpath ../` -DLLVM_TARGETS_TO_BUILD=host ${ROOT_PATH_TO_llvm-project}/llvmcmake --build . --target check-emitc





项目链接

https://github.com/iml130/mlir-emitc







请到「今天看啥」查看全文