Compare commits

...

5 Commits

Author SHA1 Message Date
  Megvii Engine Team 4f86b2c503 fix(mge/subgraph): fix mem leak 3 years ago
  Megvii Engine Team cbf9f1367a fix(imperative): fix CompNodeSyncManager deconstruct 3 years ago
  Megvii Engine Team 618c77c0b5 feat(dnn): enable eye to support bool 3 years ago
  Megvii Engine Team a8941af0c6 fix(docs): fix traced module docs warning 3 years ago
  Megvii Engine Team fefd4f0928 fix(traced_module): fix tensor node init 3 years ago
10 changed files with 27 additions and 21 deletions
Unified View
  1. +1
    -0
      dnn/src/cuda/eye/eye.cu
  2. +1
    -0
      dnn/src/cuda/eye/opr_impl.cpp
  3. +1
    -0
      dnn/src/naive/eye/opr_impl.cpp
  4. +1
    -1
      dnn/src/rocm/eye/eye.cpp.hip
  5. +1
    -0
      dnn/src/rocm/eye/opr_impl.cpp
  6. +2
    -2
      imperative/python/megengine/traced_module/__init__.py
  7. +2
    -2
      imperative/python/megengine/traced_module/node.py
  8. +1
    -0
      imperative/python/src/ops.cpp
  9. +15
    -14
      imperative/python/test/unit/functional/test_tensor.py
  10. +2
    -2
      imperative/src/impl/physical_tensor.cpp

+ 1
- 0
dnn/src/cuda/eye/eye.cu View File

@@ -39,6 +39,7 @@ void exec_internal(T* dst, size_t m, size_t n, int k, cudaStream_t stream) {
#define INST(T) template void exec_internal<T>(T*, size_t, size_t, int, cudaStream_t); #define INST(T) template void exec_internal<T>(T*, size_t, size_t, int, cudaStream_t);
#define cb(DType) INST(typename DTypeTrait<DType>::ctype) #define cb(DType) INST(typename DTypeTrait<DType>::ctype)
MEGDNN_FOREACH_COMPUTING_DTYPE(cb) MEGDNN_FOREACH_COMPUTING_DTYPE(cb)
cb(::megdnn::dtype::Bool)


} // namespace eye } // namespace eye
} // namespace cuda } // namespace cuda


+ 1
- 0
dnn/src/cuda/eye/opr_impl.cpp View File

@@ -26,6 +26,7 @@ void EyeImpl::exec(_megdnn_tensor_out dst, _megdnn_workspace workspace) {
cuda_stream(handle())); \ cuda_stream(handle())); \
} }
MEGDNN_FOREACH_COMPUTING_DTYPE(cb) MEGDNN_FOREACH_COMPUTING_DTYPE(cb)
cb(::megdnn::dtype::Bool)
#undef cb #undef cb
} }




+ 1
- 0
dnn/src/naive/eye/opr_impl.cpp View File

@@ -31,6 +31,7 @@ void EyeImpl::exec(_megdnn_tensor_out dst, _megdnn_workspace workspace) {
MEGDNN_DISPATCH_CPU_KERN_OPR(exec_internal<ctype>(dst.ptr<ctype>(), m, n)); \ MEGDNN_DISPATCH_CPU_KERN_OPR(exec_internal<ctype>(dst.ptr<ctype>(), m, n)); \
} }
MEGDNN_FOREACH_COMPUTING_DTYPE(cb) MEGDNN_FOREACH_COMPUTING_DTYPE(cb)
cb(::megdnn::dtype::Bool)
#undef cb #undef cb
} }




+ 1
- 1
dnn/src/rocm/eye/eye.cpp.hip View File

@@ -44,7 +44,7 @@ void exec_internal(T* dst, size_t m, size_t n, int k, hipStream_t stream) {
template void exec_internal<T>(T*, size_t, size_t, int, hipStream_t); template void exec_internal<T>(T*, size_t, size_t, int, hipStream_t);
#define cb(DType) INST(typename DTypeTrait<DType>::ctype) #define cb(DType) INST(typename DTypeTrait<DType>::ctype)
MEGDNN_FOREACH_COMPUTING_DTYPE(cb) MEGDNN_FOREACH_COMPUTING_DTYPE(cb)
cb(::megdnn::dtype::Bool)
} // namespace eye } // namespace eye
} // namespace rocm } // namespace rocm
} // namespace megdnn } // namespace megdnn


+ 1
- 0
dnn/src/rocm/eye/opr_impl.cpp View File

@@ -27,6 +27,7 @@ void EyeImpl::exec(_megdnn_tensor_out dst, _megdnn_workspace workspace) {
hip_stream(handle())); \ hip_stream(handle())); \
} }
MEGDNN_FOREACH_COMPUTING_DTYPE(cb) MEGDNN_FOREACH_COMPUTING_DTYPE(cb)
cb(::megdnn::dtype::Bool)
#undef cb #undef cb
} }




+ 2
- 2
imperative/python/megengine/traced_module/__init__.py View File

@@ -21,10 +21,10 @@ from .traced_module import (
_register_all_builtin_module() _register_all_builtin_module()
set_cpp_apply_module_trace(cpp_apply_module_trace) set_cpp_apply_module_trace(cpp_apply_module_trace)


__all__ = {
__all__ = [
"register_as_builtin", "register_as_builtin",
"trace_module", "trace_module",
"wrap", "wrap",
"TracedModule", "TracedModule",
"optimize", "optimize",
}
]

+ 2
- 2
imperative/python/megengine/traced_module/node.py View File

@@ -222,7 +222,7 @@ class TensorNode(Node):


def __init__( def __init__(
self, self,
expr: "Expr",
expr,
name: str = None, name: str = None,
qualname: str = None, qualname: str = None,
shape: Tuple[int] = None, shape: Tuple[int] = None,
@@ -231,7 +231,7 @@ class TensorNode(Node):
): ):
super().__init__(expr, name, qualname) super().__init__(expr, name, qualname)
self._shape = shape self._shape = shape
self._dtype = shape
self._dtype = dtype
self._qparams = qparams self._qparams = qparams


def __getstate__(self): def __getstate__(self):


+ 1
- 0
imperative/python/src/ops.cpp View File

@@ -450,6 +450,7 @@ void _init_py_op_def(py::module m) {
py_type.tp_richcompare = PyOp(OpDef)::tp_richcompare; py_type.tp_richcompare = PyOp(OpDef)::tp_richcompare;
py_type.tp_getset = py_op::py_getsetters; py_type.tp_getset = py_op::py_getsetters;
py_type.tp_repr = py_op::py_repr; py_type.tp_repr = py_op::py_repr;
py_type.tp_dealloc = py_dealloc_generic<PyOp(OpDef)>;
mgb_assert(PyType_Ready(&py_type) >= 0); mgb_assert(PyType_Ready(&py_type) >= 0);
m.add_object("OpDef", reinterpret_cast<PyObject*>(&py_type)); m.add_object("OpDef", reinterpret_cast<PyObject*>(&py_type));
} }


+ 15
- 14
imperative/python/test/unit/functional/test_tensor.py View File

@@ -24,21 +24,22 @@ from megengine.utils.network_node import VarNode




def test_eye(): def test_eye():
dtype = np.float32
dtypes = [np.float32, np.bool]
cases = [{"input": [10, 20]}, {"input": [30]}] cases = [{"input": [10, 20]}, {"input": [30]}]
for case in cases:
np.testing.assert_allclose(
F.eye(case["input"], dtype=dtype).numpy(),
np.eye(*case["input"]).astype(dtype),
)
np.testing.assert_allclose(
F.eye(*case["input"], dtype=dtype).numpy(),
np.eye(*case["input"]).astype(dtype),
)
np.testing.assert_allclose(
F.eye(tensor(case["input"]), dtype=dtype).numpy(),
np.eye(*case["input"]).astype(dtype),
)
for dtype in dtypes:
for case in cases:
np.testing.assert_allclose(
F.eye(case["input"], dtype=dtype).numpy(),
np.eye(*case["input"]).astype(dtype),
)
np.testing.assert_allclose(
F.eye(*case["input"], dtype=dtype).numpy(),
np.eye(*case["input"]).astype(dtype),
)
np.testing.assert_allclose(
F.eye(tensor(case["input"]), dtype=dtype).numpy(),
np.eye(*case["input"]).astype(dtype),
)




def test_full(): def test_full():


+ 2
- 2
imperative/src/impl/physical_tensor.cpp View File

@@ -44,7 +44,7 @@ public:
} }


static CompNodeSyncManager& inst() { static CompNodeSyncManager& inst() {
static CompNodeSyncManager sl_inst;
static CompNodeSyncManager* sl_inst = new CompNodeSyncManager();
#if MGB_CUDA && defined(WIN32) #if MGB_CUDA && defined(WIN32)
//! FIXME: windows cuda driver shutdown before call atexit function even //! FIXME: windows cuda driver shutdown before call atexit function even
//! register atexit function after init cuda driver! as a workround //! register atexit function after init cuda driver! as a workround
@@ -55,7 +55,7 @@ public:
mgb_assert(!err, "failed to register atexit function"); mgb_assert(!err, "failed to register atexit function");
} }
#endif #endif
return sl_inst;
return *sl_inst;
} }


CompNode::Event* get_or_create_event(Blob* blob) { CompNode::Event* get_or_create_event(Blob* blob) {


Loading…
Cancel
Save