TMS320F28P550SJ: I cannot perform NPU compilation for F28P55 devices using tinyml-tensorlab

Part Number: TMS320F28P550SJ

I cannot perform NPU compilation for F28P55 devices using tinyml-tensorlab. No matter how I adjust the configurations, the tool always attempts CPU compilation by default. Meanwhile, the run log fails to indicate the specific reasons why the model falls back to CPU execution instead of being offloaded to the NPU.
My ONNX model is a fully-connected network with input shape 1×64×64×1.
class SimpleFCN(nn.Module):
def __init__(self):
super().__init__()
self.layers = nn.Sequential(
nn.Linear(1, 64),
nn.ReLU(),
nn.Linear(64, 64),
nn.ReLU(),
nn.Linear(64, 1)
)

def forward(self, x):
return self.layers(x)
 
test.yaml:
common:
target_module: 'timeseries'
task_type: 'generic_timeseries_forecasting'
target_device: F28P55
run_name: '{date-time}/{model_name}'

dataset:
enable: False
dataset_name: test_model

feature_extraction:
feature_extraction_name: None

data_processing_feature_extraction:
feature_extraction_name: None

training:
enable: False
model_name: 'fcn'

compilation:
output_int: false
enable: True
preset_name: 'compress_npu_layer_data'
model_path: 'E:\study\code\tinyml\tinyml-tensorlab\tinyml-modeloptimization\fcn_sin_model_quantfx.onnx'


run.log


python tinyml_modelmaker\run_tinyml_modelmaker.py test.yaml
argv: ['tinyml_modelmaker\\run_tinyml_modelmaker.py', 'test.yaml']
Auto-detected data_dir='files' for task_category='timeseries_forecasting'
Run params is at: E:\study\code\tinyml\tinyml-tensorlab\tinyml-modelmaker\data\projects\test_model\run\20260521-111504/fcn\run.yaml
   INFO: root                : TinyVerse Toolchain Version: 01_03_00
   INFO: root                : Script: ..\..\..\..\..\desktop\python3.10\LightRAG\tinyml-tensorlab\lib\site-packages\tinyml_tinyverse\references\common\compilation.py
   INFO: root                : Target: c, ti-npu type=soft
   INFO: root                : Compilation settings - skip_normalize: False ('false' for float models, 'true' otherwise)
   INFO: root                : Compilation settings - output_int: False ('false' for float models, 'true/false' otherwise)
   INFO: root                : Compilation settings - ti-npu type: soft ('soft' for float models/generic quantized models, 'soft/hard' otherwise)
   INFO: root.gen_artifacts  : Changing directory to: E:\study\code\tinyml\tinyml-tensorlab\tinyml-modelmaker\data\projects\test_model\run\20260521-111504\fcn\compilation
   INFO: root.gen_artifacts  : Calling TVM to generate artifacts: 
   INFO: ti_mcu_nnc          :  ============================================================
   INFO: ti_mcu_nnc          :  TI Optimized Software Library Offloading Report
   INFO: ti_mcu_nnc          :  ============================================================
   INFO: ti_mcu_nnc          :  
   INFO: ti_mcu_nnc          :  LAYER/OPERATOR COUNT SUMMARY
   INFO: ti_mcu_nnc          :  ============================================================
   INFO: ti_mcu_nnc          : 
   INFO: ti_mcu_nnc          :  Layer Patterns Offloaded
   INFO: ti_mcu_nnc          :  ------------------------------------------------------------
   INFO: ti_mcu_nnc          :  Layer Pattern                                    Count     
   INFO: ti_mcu_nnc          :  ------------------------------------------------------------
   INFO: ti_mcu_nnc          : 
   INFO: ti_mcu_nnc          :  Operators not Offloaded
   INFO: ti_mcu_nnc          :  ------------------------------------------------------------
   INFO: ti_mcu_nnc          :  Operator                                         Count     
   INFO: ti_mcu_nnc          :  ------------------------------------------------------------
   INFO: ti_mcu_nnc          :  qnn.quantize                                     1         
   INFO: ti_mcu_nnc          :  qnn.dense                                        3         
   INFO: ti_mcu_nnc          :  cast                                             3         
   INFO: ti_mcu_nnc          :  nn.bias_add                                      2         
   INFO: ti_mcu_nnc          :  maximum                                          2         
   INFO: ti_mcu_nnc          :  qnn.requantize                                   3         
   INFO: ti_mcu_nnc          :  add                                              1         
   INFO: ti_mcu_nnc          :  qnn.dequantize                                   1         
   INFO: ti_mcu_nnc          : 
   INFO: ti_mcu_nnc          :  ============================================================
   INFO: ti_mcu_nnc          : 
   INFO: ti_mcu_nnc          : 
   INFO: ti_mcu_nnc          :  MODEL PARTITION - TOPOLOGICAL VIEW
   INFO: ti_mcu_nnc          :  ============================================================
   INFO: ti_mcu_nnc          :  Layer/Operator                                   Offloaded 
   INFO: ti_mcu_nnc          :  ------------------------------------------------------------
   INFO: ti_mcu_nnc          :  Input
   INFO: ti_mcu_nnc          :  qnn.quantize                                     [ ]       
   INFO: ti_mcu_nnc          :  qnn.dense                                        [ ]       
   INFO: ti_mcu_nnc          :  cast                                             [ ]       
   INFO: ti_mcu_nnc          :  nn.bias_add                                      [ ]       
   INFO: ti_mcu_nnc          :  maximum                                          [ ]       
   INFO: ti_mcu_nnc          :  qnn.requantize                                   [ ]       
   INFO: ti_mcu_nnc          :  qnn.dense                                        [ ]       
   INFO: ti_mcu_nnc          :  cast                                             [ ]       
   INFO: ti_mcu_nnc          :  nn.bias_add                                      [ ]       
   INFO: ti_mcu_nnc          :  maximum                                          [ ]       
   INFO: ti_mcu_nnc          :  qnn.requantize                                   [ ]       
   INFO: ti_mcu_nnc          :  qnn.dense                                        [ ]       
   INFO: ti_mcu_nnc          :  cast                                             [ ]       
   INFO: ti_mcu_nnc          :  add                                              [ ]       
   INFO: ti_mcu_nnc          :  qnn.requantize                                   [ ]       
   INFO: ti_mcu_nnc          :  qnn.dequantize                                   [ ]       
   INFO: ti_mcu_nnc          :  Output
   INFO: ti_mcu_nnc          :  ============================================================
   INFO: ti_mcu_nnc          : 
   INFO: ti_mcu_nnc          :  ============================================================
   INFO: ti_mcu_nnc          :  TI Model Library Memory Usage (mod.a)
   INFO: ti_mcu_nnc          :  ============================================================
   INFO: ti_mcu_nnc          :  Code:                       816 bytes (    0.80 KB)
   INFO: ti_mcu_nnc          :  RO Data:                   6352 bytes (    6.20 KB)
   INFO: ti_mcu_nnc          :  RW Data:                    178 bytes (    0.17 KB)
   INFO: ti_mcu_nnc          :  Total:                     7346 bytes (    7.17 KB)
   INFO: ti_mcu_nnc          :  ============================================================
   INFO: TVMC                :  TI memory calculation completed successfully
   INFO: root.gen_artifacts  : Changing directory back to: E:\study\code\tinyml\tinyml-tensorlab\tinyml-modelmaker
   INFO: root.remove_intermittent_files: Removing intermittent files from: E:\study\code\tinyml\tinyml-tensorlab\tinyml-modelmaker\data\projects\test_model\run\20260521-111504\fcn\compilation
Compiled model is at: E:\study\code\tinyml\tinyml-tensorlab\tinyml-modelmaker\data\projects\test_model\run\20260521-111504\fcn\compilation

  • Hello,
    We have received your post and the investigation will take some time.
    Thanks for your patience.

  • 你好,
    我会调查一下,稍后回复你。

  • 你好,
    我会调查一下,稍后回复你。

  • 你好
    我认为你的 test.yaml 文件中存在配置错误,并且存在一个模型架构问题,这些问题共同导致 NPU 卸载失败。

    你使用

    汇编:
    预设名称:'compress_npu_layer_data'

    正确的字段名称是 compile_preset_name:

    汇编:
    compile_preset_name: 'compress_npu_layer_data'


    由于这个拼写错误,该工具默默地忽略了您的预设,并回退到默认值,该默认值使用 CPU 来执行 generic_timeseries_forecasting 任务。

    您的训练部分没有量化字段。
    默认值为 0(浮点模型),并且该工具始终强制对浮点模型或通用量化模型执行 CPU 操作,因为 F28P55 NPU 硬件无法做到这一点。
    处决他们。
    将此内容添加到您的培训部分:

    训练:
    启用:否
    模型名称:'fcn'
    量化:2 # NPU 必需 — TINPU 特有的量化

    我还建议您研究一下 tensorlab 的文档,了解 NPU 卸载支持哪些层。