You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

external.py 1.9 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. # -*- coding: utf-8 -*-
  2. # MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
  3. #
  4. # Copyright (c) 2014-2020 Megvii Inc. All rights reserved.
  5. #
  6. # Unless required by applicable law or agreed to in writing,
  7. # software distributed under the License is distributed on an
  8. # "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  9. # pylint: disable=too-many-lines
  10. from typing import List
  11. import megengine._internal as mgb
  12. from ..core import Tensor, wrap_io_tensor
  13. @wrap_io_tensor
  14. def cambricon_subgraph(
  15. inputs: List[Tensor], data: bytes, symbol: str, tensor_dim_mutable: bool,
  16. ) -> List[Tensor]:
  17. """Load a serialized Cambricon subgraph (i.e. cnrtModel_t) and
  18. execute the operations defined in the subgraph.
  19. :param inputs: List of input tensors of the subgraph.
  20. :param data: The serialized subgraph.
  21. :param symbol: The name of the function in the subgraph.
  22. The function is corresponding to a cnmlFusionOp
  23. which is added to the cnmlModel_t/cnrtModel_t.
  24. :param tensor_dim_mutable: Whether the input tensors' shapes are mutalbe
  25. in cnrtModel_t
  26. """
  27. return mgb.opr.cambricon_runtime(
  28. data, symbol, tuple(map(lambda x: x._symvar, inputs)), tensor_dim_mutable
  29. )
  30. @wrap_io_tensor
  31. def extern_opr_subgraph(
  32. inputs, output_shapes: List[tuple], dump_name: str, dump_data: bytes,
  33. ) -> List[Tensor]:
  34. """Load a serialized extern opr subgraph and fake execute the operator
  35. :param inputs: Tensor or list of input tensors.
  36. :param output_shapes: The output shapes.
  37. :param dump_name: The serialized subgraph name.
  38. :param dump_data: The serialized subgraph.
  39. :return: List of tensors
  40. """
  41. if not isinstance(inputs, list):
  42. inputs = [inputs]
  43. return mgb.opr.extern_c_opr_placeholder(
  44. inputs, output_shapes, dump_name=dump_name, dump_data=dump_data,
  45. )

MegEngine 安装包中集成了使用 GPU 运行代码所需的 CUDA 环境,不用区分 CPU 和 GPU 版。 如果想要运行 GPU 程序,请确保机器本身配有 GPU 硬件设备并安装好驱动。 如果你想体验在云端 GPU 算力平台进行深度学习开发的感觉,欢迎访问 MegStudio 平台