MCPcopy
hub / github.com/NVIDIA/TensorRT-LLM / ShapeExpr

Class ShapeExpr

tensorrt_llm/python_plugin.py:177–228  ·  view source on GitHub ↗

The class to Wrap `trt.DimsExprs` to support more pythonic methods.

Source from the content-addressed store, hash-verified

175
176
177class ShapeExpr:
178 """The class to Wrap `trt.DimsExprs` to support more pythonic methods."""
179
180 def __init__(
181 self,
182 dims: Union[Sequence[trt.IDimensionExpr], Sequence[int], Sequence[type[None]]],
183 exprBuilder: Union[trt.IExprBuilder, type[None]],
184 ):
185 self.exprBuilder = exprBuilder
186 self.dims = dims
187
188 @property
189 def dims(self):
190 return self._dims
191
192 @dims.setter
193 def dims(
194 self,
195 dims: Sequence[Union["DimensionExpr", trt.IDimensionExpr, int, Type[None]]],
196 ):
197 if dims is not None:
198 self._dims = [
199 DimensionExpr(make_expr(self.exprBuilder, i), self.exprBuilder) for i in dims
200 ]
201 else:
202 self._dims = None
203
204 def __getitem__(self, index: int):
205 if self._dims is not None:
206 return self._dims[index]
207 else:
208 return DimensionExpr(None, self.exprBuilder)
209
210 def __setitem__(
211 self,
212 index: int,
213 value: Union["DimensionExpr", trt.IDimensionExpr, int, Type[None]],
214 ):
215 if self._dims is None:
216 return
217 assert index < len(self._dims)
218 value = DimensionExpr(make_expr(self.exprBuilder, value), self.exprBuilder)
219 self._dims[index] = value
220
221 def __len__(self):
222 if self._dims is None:
223 return 0
224 else:
225 return len(self._dims)
226
227 def to_trt(self) -> trt.DimsExprs:
228 return trt.DimsExprs([i.expr for i in self.dims])
229
230
231class SymTensor:

Callers 2

get_output_data_typesMethod · 0.85
get_output_shapesMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected