使用genie-t2t在QCM6490上运行minicpm-1b_qnn228_qcs6490报错

  1. 我push到安卓端的文件

image

  1. HTP.json
    {

    “dialog” : {

    "version" : 1,
    
    "type" : "basic",
    
    "context" : {
    
      "version" : 1,
    
      "size": 128,
    
      "n-vocab": 73440,
    
      "bos-token": -1,
    
      "eos-token": 2
    
    },
    
    "sampler" : {
    
      "version" : 1,
    
      "seed" : 42,
    
      "temp" : 0.8,
    
      "top-k" : 40,
    
      "top-p" : 0.8,
    
      "greedy" : false
    
    },
    
    "tokenizer" : {
    
      "version" : 1,
    
      "path" : "minicpm-1b-tokenizer.json"
    
    },
    
    "engine" : {
    
      "version" : 1,
    
      "n-threads" : 1,
    
      "backend" : {
    
        "version" : 1,
    
        "type" : "QnnHtp",
    
        "QnnHtp" : {
    
          "version" : 1,
    
          "spill-fill-bufsize" : 0,
    
          "use-mmap" : false,
    
          "mmap-budget" : 0,
    
          "poll" : true,
    
          "cpu-mask" : "0xe0",
    
          "kv-dim" : 64,
    
          "allow-async-init": false
    
        },
    
        "extensions" : "htp_backend_ext_config.json"
    
      },
    
      "model" : {
    
        "version" : 1,
    
        "type" : "binary",
    
        "binary" : {
    
          "version" : 1,
    
          "ctx-bins" : \[
    
            "minicpm-1b_qnn228_qcs6490_128_1_of_1_part1.serialized.bin",
    
            "minicpm-1b_qnn228_qcs6490_128_1_of_1_part2.serialized.bin"
    
          \]
    
        },
    
        "positional-encoding" : {
    
          "type" : "rope",
    
          "rope-dim" : 32,
    
          "rope-theta" : 10000,
    
          "rope-scaling" : {
    
            "rope-type" : "default"
    
          }
    
        }
    
      }
    
    }
    

    }

    }

  2. 报错

所以是我的设备不适合运行,还是我执行有误呢?求救!

在 QCS6490 上运行minicpm-1b_qnn228_qcs6490时出现Failed to create device: 14001报错,核心是硬件加速设备(HTP)无法被正确调用,常见原因及解决思路如下:

可能的原因:QNN HTP 后端未正确配置 / 权限不足

原因genie-t2t依赖高通 QNN(Qualcomm Neural Processing SDK)的 HTP(Hexagon Tensor Processor)后端,但设备未开启 HTP 权限、或 QNN 版本与硬件不匹配。

验证 / 解决

  • 检查设备是否启用了 Hexagon DSP/HTP:嵌入式设备需在系统启动时加载 HTP 驱动,可通过cat /proc/cpuinfols /dev/htp*确认设备节点是否存在;

  • 运行程序时需root 权限:HTP 设备节点通常需要 root 才能访问,尝试用sudo ./genie-t2t-run ...执行。