packfunc
为实现多种语言支持,需要满足以下几点: 部署:编译结果可以从python/javascript/c++调用。 Debug: 在python中定义一个函数,在编译函数中调用。 链接:编写驱动程序以调用设备特定代码(如CUDA),可以在编译的host侧调用 原型:python侧定义IR PASS,并从...
钱塘江上潮信来,今日方知我是我
为实现多种语言支持,需要满足以下几点: 部署:编译结果可以从python/javascript/c++调用。 Debug: 在python中定义一个函数,在编译函数中调用。 链接:编写驱动程序以调用设备特定代码(如CUDA),可以在编译的host侧调用 原型:python侧定义IR PASS,并从...
本文为tvm 教程的翻译版。这部分介绍了如何在tvm中添加新的relay算子,具体的是以一个累乘(cumprod)算子为例进行介绍。 新增relay算子基本是下面几个步骤: 定义新增算子的属性节点(Attribute Node),声明在编译时已知的固定参数 为新增算子编写类型关系,以集成到rela...
从TVM的官方Tutorial里面,介绍了如何新增自定义算子。(这是我翻译的) 之前的文章讲到了onnx 算子转换到Relay IR的过程 下面以Conv2d算子介绍,编译过程中 Relay IR是如何被调用的。 relay 算子调用上面的get_relay_op实际上是查找所有 relay ir算...
Relay Operator Strategy是建立Relay IR与TOPI算子库的桥梁,通过Relay Operator Strategy,每个Relay IR至少与一个compute和一个schedule注册关联起来。至少一个原因在于,一个算子在不同后端设备上有不同的实现,而且一个算子可能有多...