tvm
memory.h
Go to the documentation of this file.
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements. See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership. The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  * KIND, either express or implied. See the License for the
16  * specific language governing permissions and limitations
17  * under the License.
18  */
19 
24 #ifndef TVM_RELAY_ATTRS_MEMORY_H_
25 #define TVM_RELAY_ATTRS_MEMORY_H_
26 
27 #include <tvm/ir/attrs.h>
28 #include <tvm/relay/expr.h>
30 
31 #include <string>
32 #include <vector>
33 
34 namespace tvm {
35 namespace relay {
36 
37 std::vector<TensorType> FlattenTupleType(const Type& type);
38 std::vector<Expr> FromTupleType(const Type& type, const Expr& expr);
39 Expr ToTupleType(const Type& t, const std::vector<Expr>& exprs);
40 
44 struct AllocStorageAttrs : public tvm::AttrsNode<AllocStorageAttrs> {
47 
48  TVM_DECLARE_ATTRS(AllocStorageAttrs, "relay.attrs.AllocStorageAttrs") {
50  .describe("The dtype of the tensor to allocate.")
51  .set_default(DataType::Float(32, 1));
52  TVM_ATTR_FIELD(virtual_device).describe("The virtual device on which to allocate memory.");
53  }
54 };
55 
59 struct AllocTensorAttrs : public tvm::AttrsNode<AllocTensorAttrs> {
63 
64  TVM_DECLARE_ATTRS(AllocTensorAttrs, "relay.attrs.AllocTensorAttrs") {
66  .describe("The dtype of the tensor to allocate.")
67  .set_default(DataType::Float(32, 1));
68  TVM_ATTR_FIELD(const_shape).describe("The shape of constant used to aid in type inference.");
70  .describe(
71  "The shape to cast the return type of the allocation to, "
72  "used to specify the shape obtained via further analysis.");
73  }
74 };
75 
76 } // namespace relay
77 } // namespace tvm
78 #endif // TVM_RELAY_ATTRS_MEMORY_H_
The base class of the all the Use "curiously recurring template pattern".
Definition: attrs.h:870
Managed reference to RelayExprNode.
Definition: expr.h:442
Managed reference to TypeNode.
Definition: type.h:93
Managed reference class to VirtualDeviceNode.
Definition: virtual_device.h:271
static VirtualDevice FullyUnconstrained()
Returns the unique fully unconstrained VirtualDevice.
Definition: expr.h:99
Array, container representing a contiguous sequence of ObjectRefs.
Definition: array.h:289
Runtime primitive data type.
Definition: data_type.h:43
static DataType Float(int bits, int lanes=1)
Construct an float type.
Definition: data_type.h:236
Helpers for attribute objects.
#define TVM_ATTR_FIELD(FieldName)
Declare an attribute field.
Definition: attrs.h:76
std::vector< TensorType > FlattenTupleType(const Type &type)
Expr ToTupleType(const Type &t, const std::vector< Expr > &exprs)
std::vector< Expr > FromTupleType(const Type &type, const Expr &expr)
runtime implementation for LibTorch/TorchScript.
Definition: analyzer.h:36
Relay expression language.
Options for allocating storage.
Definition: memory.h:44
DataType dtype
Definition: memory.h:45
TVM_DECLARE_ATTRS(AllocStorageAttrs, "relay.attrs.AllocStorageAttrs")
Definition: memory.h:48
VirtualDevice virtual_device
Definition: memory.h:46
Options for allocating tensors.
Definition: memory.h:59
Constant const_shape
Definition: memory.h:60
Array< IndexExpr > assert_shape
Definition: memory.h:61
TVM_DECLARE_ATTRS(AllocTensorAttrs, "relay.attrs.AllocTensorAttrs")
Definition: memory.h:64
DataType dtype
Definition: memory.h:62
A compile time representation for where data is to be stored at runtime, and how to compile code to c...