Struct caffe2_opt::TvmTransformer
source · pub struct TvmTransformer { /* private fields */ }
Implementations§
source§impl TvmTransformer
impl TvmTransformer
pub fn new(opts: &TvmTransformOptions) -> Self
sourcepub fn build_tvm_op(
&mut self,
net: &NetDef,
weights: &HashSet<String>,
shape_hints: &ShapeInfoMap
) -> NetDef
pub fn build_tvm_op( &mut self, net: &NetDef, weights: &HashSet<String>, shape_hints: &ShapeInfoMap ) -> NetDef
| Given TVM runnable subnets, contract | them into one TVMJitOp |
sourcepub fn transform(
&mut self,
ws: *mut Workspace,
pred_net: *mut NetDef,
weight_names: &Vec<String>,
input_shape_hints: &ShapeInfoMap,
blocklisted_ops: &HashSet<i32>
)
pub fn transform( &mut self, ws: *mut Workspace, pred_net: *mut NetDef, weight_names: &Vec<String>, input_shape_hints: &ShapeInfoMap, blocklisted_ops: &HashSet<i32> )
| Given workspace and predict net, cluster | continuous parts that can be run by TVM | and create one TVMJit op for each clustered | subgraph. | | ———– | @param ws | | c2 workspace | ––––– | @param pred_net | | c2 predict net | ––––– | @param weight_names | | list of the names of the constant weights | ––––– | @param shape_hints | | User provided shape info, usually for | primary inputs so that bound shape inference | can have something to start | ––––– | @param blocklisted_ops | | a set of ops that we don’t want to lower | to TVM in terms of their net positions. | This is very useful for debugging but | for normal runs it should be empty | | Cutting off the runnable part and replace | with TVMJitOPs. Asssume the nets were | topologically sorted |
pub fn get_supported_ops(&mut self) -> &HashSet<String>
pub fn can_convert_full_graph( &mut self, net: &NetDef, blocklisted_ops: &HashSet<i32> ) -> bool
sourcepub fn apply_tvm_transform(
&mut self,
pred_net: *mut NetDef,
weights: &HashSet<String>,
blocklisted_ops: &HashSet<i32>,
shape_hints: &ShapeInfoMap
) -> NetDef
pub fn apply_tvm_transform( &mut self, pred_net: *mut NetDef, weights: &HashSet<String>, blocklisted_ops: &HashSet<i32>, shape_hints: &ShapeInfoMap ) -> NetDef
Apply transform to cluster connected TVM runnable ops into one TVMJitOp
Auto Trait Implementations§
impl RefUnwindSafe for TvmTransformer
impl Send for TvmTransformer
impl Sync for TvmTransformer
impl Unpin for TvmTransformer
impl UnwindSafe for TvmTransformer
Blanket Implementations§
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.