Toybrick

标题: 3399pro运行多次后失败或崩溃是什么原因? [打印本页]

作者: wang    时间: 2020-1-15 11:12
标题: 3399pro运行多次后失败或崩溃是什么原因?
3399pro运行多次后失败或崩溃是什么原因?
我使用的安卓平台交替跑两个模型,大概三五百次会运行失败,请教是什么原因?
[attach]830[/attach]

我查看了返回值类型:
#define RKNN_ERR_DEVICE_UNAVAILABLE             -3      /* device is unavailable. */
#define RKNN_ERR_MALLOC_FAIL                    -4      
/* memory malloc fail. */

看了内存也有释放的,调用程序使用的是demo如下:bool run_ssd(char *inData, float *y0, float *y1)
{
    if(!created) {
        LOGE("run_ssd: create hasn't successful!");
        return false;
    }

    rknn_input inputs[1];
    inputs[0].index = input_index;
    inputs[0].buf = inData;
    inputs[0].size = img_width * img_height * img_channels;
    inputs[0].pass_through = false;
    inputs[0].type = RKNN_TENSOR_UINT8;
    inputs[0].fmt = RKNN_TENSOR_NHWC;
    int ret = rknn_inputs_set(ctx, 1, inputs);
    if(ret < 0) {
        LOGE("rknn_input_set fail! ret=%d\n", ret);
        return false;
    }

    ret = rknn_run(ctx, nullptr);
    if(ret < 0) {
        LOGE("rknn_run fail! ret=%d\n", ret);
        return false;
    }

    rknn_output outputs[2];
#if 1
    outputs[0].want_float = true;
    outputs[0].is_prealloc = true;
    outputs[0].index = output_index0;
    outputs[0].buf = y0;
    outputs[0].size = output_size0;
    outputs[1].want_float = true;
    outputs[1].is_prealloc = true;
    outputs[1].index = output_index1;
    outputs[1].buf = y1;
    outputs[1].size = output_size1;
#else  // for workround the wrong order issue of output index.
    outputs[0].want_float = true;
    outputs[0].is_prealloc = true;
    outputs[0].index = output_index0;
    outputs[0].buf = y1;
    outputs[0].size = output_size1;
    outputs[1].want_float = true;
    outputs[1].is_prealloc = true;
    outputs[1].index = output_index1;
    outputs[1].buf = y0;
    outputs[1].size = output_size0;
#endif
    ret = rknn_outputs_get(ctx, 2, outputs, nullptr);
    if(ret < 0) {
        LOGE("rknn_outputs_get fail! ret=%d\n", ret);
        return false;
    }

    rknn_outputs_release(ctx, 2, outputs);
    return true;
}






欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3