TVM 库中 relay.build_module.build() 之后图形和库参数的差异



在TVM库中,当使用_relay.build_module.build()_时,relay.buildtvm.build后的输出结果是什么

两个参数作为输出 - 图形和库 - 后来用于运行图形或创建图形运行时有什么区别和需求?

例如,在此代码中:

opt_level = 3
target = tvm.target.cuda()
with relay.build_config(opt_level=opt_level):
    graph, lib, params = relay.build_module.build(
        net, target, params=params)

什么是输出?我们可以只使用其中一个来生成图形运行时,还是我们总是必须同时使用它们,如下所示:

# create random input
ctx = tvm.gpu()
data = np.random.uniform(-1, 1, size=data_shape).astype("float32")
# create module
module = graph_runtime.create(graph, lib, ctx)
# set input and parameters
module.set_input("data", data)
module.set_input(**params)
# run
module.run()
# get output
out = module.get_output(0, tvm.nd.empty(out_shape)).asnumpy()

要生成图形运行时,您始终需要图形

  • 图形:JSON 格式的执行图
  • lib:专门针对目标硬件上的此图编译函数的 TVM 模块库。

换句话说,图形告诉编译器层是如何排列的;lib 指定每个层实现的功能。

来源: https://docs.tvm.ai/tutorials/relay_quick_start.html#sphx-glr-tutorials-relay-quick-start-py

相关内容

  • 没有找到相关文章

最新更新