博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Tengine端侧推理框架】——devices
阅读量:4303 次
发布时间:2019-05-27

本文共 2121 字,大约阅读时间需要 7 分钟。

code:https://github.com/OAID/Tengine

version: 88b4b7a2
图片,代码都来自以上项目。
在这里插入图片描述

1. 简介

2. 正题

  • static struct cpu_device cpu_dev注册到internal_device_registry
static struct cpu_device cpu_dev = {
.base = {
.name = CPU_DEVICE_NAME, .interface = &cpu_interface, .allocator = &cpu_allocator, .optimizer = &cpu_optimizer, .scheduler = NULL, .privacy = NULL, }, .master_cpu = 0, .cpu_model = 0,};int register_device(ir_device_t* device){
initialize_device_registry(device->name); // 为 devices 申请空间 if (NULL == internal_device_registry) {
TLOG_CRIT("Tengine: Can not register %s, module was not be inited.\n", device->name); return -1; } if (NULL != device->interface && NULL != device->interface->init) {
int ret = device->interface->init(device); // 注册不同devices上的op, op和devices没有联系起来 if (0 != ret) {
TLOG_CRIT("Tengine: Can not register %s, module init was failed(%d).\n", device->name, ret); return -1; } } int ret = push_vector_data(internal_device_registry, &device); if (0 != ret) {
TLOG_CRIT("Tengine: Can not register %s, module cannot not be inserted.\n", device->name); return ret; } return 0;}
  • 将cpu上实现的op方法,注册到cpu_builtin_ops_registry
1. ret = register_absval_ref_op();ret = register_add_n_ref_op();2. static struct node_ops hcl_node_ops = {
.prerun = prerun, .run = run, .reshape = NULL, .postrun = NULL, .init_node = init_node, .release_node = release_node, .score = score};int register_absval_ref_op(){
return register_builtin_node_ops(OP_ABSVAL, &hcl_node_ops); // OP_ABSVAL:索引, hcl_node_ops:方法}

总结

  • 所有的注册都是因为Tengine采用c语言实现的,所以只能将各种数据注册到static类型中
  • 注册到这里基本就结束了,后面是关于Tengine的graph

转载地址:http://duhws.baihongyu.com/

你可能感兴趣的文章
talib均线大全
查看>>
期货市场技术分析06_长期图表和商品指数
查看>>
期货市场技术分析07_摆动指数和相反意见理论
查看>>
满屏的指标?删了吧,手把手教你裸 K 交易!
查看>>
不吹不黑 | 聊聊为什么要用99%精度的数据回测
查看>>
X 分钟速成 Python
查看>>
对于模拟交易所引发的思考
查看>>
高频交易的几种策略
查看>>
量化策略回测TRIXKDJ
查看>>
量化策略回测唐安奇通道
查看>>
CTA策略如何过滤部分震荡行情?
查看>>
量化策略回测DualThrust
查看>>
量化策略回测BoolC
查看>>
量化策略回测DCCV2
查看>>
mongodb查询优化
查看>>
五步git操作搞定Github中fork的项目与原作者同步
查看>>
git 删除远程分支
查看>>
删远端分支报错remote refs do not exist或git: refusing to delete the current branch解决方法
查看>>
python multiprocessing遇到Can’t pickle instancemethod问题
查看>>
APP真机测试及发布
查看>>