Published on

Simple Conv — 单层卷积 IREE 编译产物

Authors
  • avatar
    Name
    alan
    Twitter

从 ResNet50 模型中提取第一个卷积层 resnetv17_conv0_fwd,固化 batch size 为 1,并通过 IREE 编译为可执行格式。

文件说明

文件大小说明
simpy_conv.mlir74KMLIR 中间表示(由 ONNX 转换而来)
simpy_conv.vmfb52KIREE 编译后的字节码(可在 local-task 设备上运行)

源模型:../resnet50-v1-12_resnetv17_conv0_fwd-bs1.onnx(batch=1 的提取卷积层)

生成命令

1. ONNX → MLIR

python -m iree.compiler.tools.import_onnx \
    ../resnet50-v1-12_resnetv17_conv0_fwd-bs1.onnx \
    -o simpy_conv.mlir \
    --opset-version 17

2. MLIR → VMFB

/Users/alanchen/workspace/iree/build/tools/iree-compile \
    simpy_conv.mlir \
    --iree-hal-target-device=local \
    --iree-hal-local-target-device-backends=llvm-cpu \
    --iree-llvmcpu-target-cpu=host \
    -o simpy_conv.vmfb

3. 编译验证

/Users/alanchen/workspace/iree/build/tools/iree-run-module \
    --module=simpy_conv.vmfb \
    --device=local-task \
    --function=mxnet_converted_model_extracted \
    --input=1x3x224x224xf32=1

输出:1x64x112x112xf32,内存峰值 HOST ~3.2MB / DEVICE ~4.4MB。

模型结构

Input:  data → [1, 3, 224, 224]   (RGB 图像)
Conv2D  → [1, 64, 112, 112]       (64通道, 7x7 kernel, stride=2)
Output: resnetv17_conv0_fwd