提前编译模式下,MindIE Torch主要分为compile和forward两阶段工作。
// load TorchScript module torch::jit::script::Module module = torch::jit::load("xxx.pth"); // step1:compile torch_aie::torchscript::CompileSpec compileSpec(inputsInfo); auto compiled_module = torch_aie::torchscript::compile(module, compileSpec); // step2:forward npu_results = compiled_module.forward(input);
# load TorchScript module model = torch.jit.load("xxx.pth") # step1:compile compiled_module = mindietorch.compile(model, inputs=inputs_info) # step2:forward npu_results = compiled_module.forward(input_data)
# load PyTorch nn.module model = torch.load("xxx.pth") # 在使用MindIE Torch之前用户可以选择提前导出ExportedProgram exported_model = torch.export.export(model, args=tuple(input_data,)) # step1:compile # 当传入一个nn.Module时, MindIE Torch内部会先导出ExportedProgram, 再进行编译优化 compiled_module = mindietorch.compile(model, inputs=inputs_info, ir="dynamo") # 当传入一个ExportedProgram时, MindIE Torch会直接进行编译优化 compiled_module = mindietorch.compile(exported_model, inputs=inputs_info, ir="dynamo") # step2:forward npu_results = compiled_module.forward(input_data)