zhoufeng
f49b195c39
extract common as an independent shared library
Signed-off-by: zhoufeng <zhoufeng54@huawei.com>
4 years ago
chenfei
fa7cb34c8a
set abstract of switch
4 years ago
huangbingjian
a6cb77a433
Code check, change log level.
4 years ago
l00591931
f57f2399db
Change one info to debug in inline.h
4 years ago
He Wei
41dcac9c49
Replace std::unordered_map/set with robin-hood-hashing
Robin-hood-hashing (https://github.com/martinus/robin-hood-hashing )
is considered faster then std::unordered_map/set,
so we use it to improve mindspore performance.
1. robin_hood head file in `third_party/robin_hood/include`;
2. In `utils/hash_map.h` and `utils/hash_set.h`, we define:
- mindspore::HashMap as an alias of robin_hood::unordered_map;
- mindspore::HashSet as an alias of robin_hood::unordered_set;
3. Replace:
- `#include <unordered_map>` --> `#include "utils/hash_map.h"`;
- `#include <unordered_set>` --> `#include "utils/hash_set.h"`;
- `std::unordered_map` --> `mindspore::HashMap`;
- `std::unordered_set` --> `mindspore::HashSet`;
- `map.insert(std::pair(key, value))` --> `map.emplace(key, value)`;
- `[] (const std::pair<K, V> &p) {..} ` --> `[] (const auto &p) {..} `;
4. Fix issues found by switch to robin_hood:
- AnfNodeConfig hash and equal;
- Fix a bug in `Slice::operator==()`;
- Fix a bug in `CNode::HasPrimalAttr()`;
- Fix map.erase() usage bugs: `map.erase(iter++)` --> `iter = map.erase(iter)`;
- Fix some iterator invalidated problem;
5. Some std::unordered_map/set can not replace by robin_hood:
- As parameter of functions that exposed to python by pybind11;
- Use bad hash that cause robin_hood::map over_flow, such as AbstractBasePtrListHasher;
6. Update cpp unit tests;
7. Add build option '-F' to enable robin_hood, default on.
4 years ago
huangbingjian
e623173965
clean code
4 years ago
zhunaipan
8ce4e62725
optimize the comment and log description
修改: ops/operations/_inner_ops.py
修改: ops/operations/_quant_ops.py
修改: ops/operations/array_ops.py
修改: ops/operations/comm_ops.py
修改: ops/operations/math_ops.py
修改: ops/operations/quantum_ops.py
修改: ops/operations/rl_ops.py
修改: ops/operations/sponge_ops.py
修改: ops/operations/sponge_update_ops.py
修改: train/__init__.py
修改: common/tensor.py
修改: train/serialization.py
修改: ccsrc/pipeline/jit/parse/parse.h
修改: explainer/benchmark/_attribution/metric.py
修改: ops/composite/multitype_ops/_constexpr_utils.py
修改: ops/operations/comm_ops.py
修改: RELEASE.md
修改: mindspore/_extends/parse/standard_method.py
修改: mindspore/ccsrc/backend/kernel_compiler/cpu/concat_offset_cpu_kernel.cc
修改: mindspore/ccsrc/backend/kernel_compiler/cpu/dynamic_shape_cpu_kernel.cc
修改: mindspore/ccsrc/frontend/parallel/ops_info/reshape_info.cc
修改: mindspore/ccsrc/frontend/parallel/ops_info/tile_info.cc
修改: mindspore/ccsrc/frontend/parallel/ops_info/transpose_info.cc
修改: mindspore/ccsrc/frontend/parallel/strategy.h
修改: mindspore/common/tensor.py
修改: mindspore/core/abstract/prim_arrays.cc
修改: mindspore/core/abstract/prim_nn.cc
修改: mindspore/core/ops/conv2d.cc
修改: mindspore/core/ops/logical_and.h
修改: mindspore/core/ops/logical_not.h
修改: mindspore/core/ops/logical_or.h
修改: mindspore/core/ops/reduce_all.h
修改: mindspore/core/ops/reduce_any.h
修改: mindspore/lite/src/runtime/kernel/arm/fp32_grad/sgd.cc
修改: mindspore/nn/layer/quant.py
修改: mindspore/nn/optim/sgd.py
修改: mindspore/nn/sparse/sparse.py
修改: mindspore/numpy/array_creations.py
修改: mindspore/numpy/array_ops.py
修改: mindspore/numpy/logic_ops.py
修改: mindspore/numpy/math_ops.py
修改: mindspore/ops/operations/_inner_ops.py
修改: mindspore/ops/operations/array_ops.py
修改: mindspore/ops/operations/rl_ops.py
修改: mindspore/train/_utils.py
修改: tests/ut/python/model/test_lenet_core_after_exception.py
修改: mindspore/_extends/parse/standard_method.py
修改: mindspore/ops/operations/rl_ops.py
修改: mindspore/core/abstract/prim_nn.cc
修改: mindspore/core/ops/conv2d.cc
修改: mindspore/ccsrc/backend/kernel_compiler/cpu/ctcloss_cpu_kernel.cc
修改: mindspore/ccsrc/backend/kernel_compiler/cpu/fl/fused_pull_weight_kernel.h
修改: mindspore/ccsrc/backend/kernel_compiler/cpu/fl/fused_push_weight_kernel.h
修改: mindspore/ccsrc/backend/kernel_compiler/cpu/mkldnn/conv2d_grad_filter_cpu_kernel.cc
修改: mindspore/ccsrc/backend/kernel_compiler/cpu/mkldnn/conv2d_grad_input_cpu_kernel.cc
修改: mindspore/ccsrc/backend/kernel_compiler/cpu/ps/sparse_apply_ftrl_ps_kernel.cc
修改: mindspore/ccsrc/backend/kernel_compiler/cpu/ps/sparse_apply_lazy_adam_ps_kernel.cc
修改: mindspore/ccsrc/backend/kernel_compiler/cpu/rolling_cpu_kernel.cc
修改: mindspore/ccsrc/backend/kernel_compiler/cpu/scatter_arithmetic_cpu_kernel.cc
修改: mindspore/ccsrc/backend/kernel_compiler/cpu/split_cpu_kernel.cc
修改: mindspore/ccsrc/backend/kernel_compiler/cpu/update_cache_cpu_kernel.cc
修改: mindspore/ccsrc/backend/kernel_compiler/gpu/arrays/split_gpu_kernel.h
修改: mindspore/ccsrc/backend/kernel_compiler/gpu/math/broadcast_gpu_kernel.h
修改: mindspore/ccsrc/backend/kernel_compiler/gpu/nn/conv2d_grad_input_gpu_kernel.h
修改: mindspore/ccsrc/fl/server/server.cc
修改: mindspore/ccsrc/frontend/optimizer/ad/kpynative.cc
修改: mindspore/ccsrc/frontend/optimizer/irpass/incorporate_getitem.h
修改: mindspore/ccsrc/frontend/optimizer/irpass/inline.h
修改: mindspore/ccsrc/minddata/dataset/core/device_tensor.cc
修改: mindspore/ccsrc/minddata/dataset/core/tensor.cc
修改: mindspore/ccsrc/minddata/dataset/engine/datasetops/source/emnist_op.cc
修改: mindspore/ccsrc/minddata/dataset/engine/datasetops/source/mnist_op.cc
修改: mindspore/ccsrc/minddata/dataset/engine/datasetops/source/qmnist_op.cc
修改: mindspore/ccsrc/minddata/dataset/engine/ir/datasetops/dataset_node.cc
修改: mindspore/ccsrc/minddata/dataset/engine/opt/pre/epoch_ctrl_pass.cc
修改: mindspore/ccsrc/minddata/dataset/kernels/image/lite_image_utils.cc
修改: mindspore/ccsrc/pipeline/jit/action.cc
修改: mindspore/ccsrc/pipeline/jit/static_analysis/evaluator.cc
修改: mindspore/ccsrc/runtime/device/ascend/executor/tiling/op_tiling_adapter.cc
修改: mindspore/compression/quant/quant_utils.py
修改: mindspore/core/abstract/prim_nn.cc
修改: mindspore/dataset/engine/validators.py
修改: mindspore/lite/micro/coder/opcoders/nnacl/fp32/affine_fp32_coder.cc
修改: mindspore/lite/micro/coder/opcoders/nnacl/int8/affine_int8_coder.cc
修改: mindspore/lite/src/runtime/kernel/ascend310/src/custom_kernel.cc
修改: mindspore/lite/src/runtime/kernel/opencl/kernel/matmul.cc
修改: mindspore/lite/src/runtime/kernel/opencl/kernel/strassen.cc
修改: mindspore/lite/tools/common/graph_util.h
修改: mindspore/lite/tools/optimizer/fisson/fisson_util.cc
修改: mindspore/ops/composite/math_ops.py
修改: mindspore/ops/operations/_inner_ops.py
修改: mindspore/ops/operations/array_ops.py
修改: mindspore/ops/operations/math_ops.py
修改: mindspore/ops/operations/other_ops.py
修改: mindspore/boost/boost_cell_wrapper.py
修改: mindspore/ccsrc/backend/kernel_compiler/cpu/update_cache_cpu_kernel.cc
修改: mindspore/ccsrc/common/trans.cc
修改: mindspore/ccsrc/frontend/parallel/cache_embedding/cache_embedding.cc
修改: mindspore/ccsrc/frontend/parallel/ops_info/gather_info.cc
修改: mindspore/lite/src/common/log_util.h
修改: mindspore/nn/wrap/loss_scale.py
修改: mindspore/parallel/nn/moe.py
修改: tests/mindspore_test_framework/mindspore_test.py
修改: mindspore/ccsrc/backend/kernel_compiler/cpu/split_cpu_kernel.cc
修改: mindspore/lite/tools/common/graph_util.h
修改: mindspore/ccsrc/frontend/parallel/ops_info/gather_info.cc
修改: mindspore/core/ops/conv2d.cc
修改: tests/ut/python/model/test_lenet_core_after_exception.py
4 years ago
l00591931
092fcc40c9
Fix inline pass problem on switch
4 years ago
huangbingjian
dc00ff9fdd
clean code in frontend/optimizer
4 years ago
i-robot
0022d07d6e
!19289 Lift FV before AD pass.
Merge pull request !19289 from 张清华/cconv_opt0
4 years ago
zhousiyi
a5b4e7bbf8
lift fv before grad except weight, then convert
switch(cond, partial(g1, xs), partial(g2, ys))(Zs)
to
switch(cond, g1, g2)(Xs, Ys, Zs)
switch_layer(index, make_tuple(partial(g1, xs), partial(g2, ys)))(Zs)
to
switch_layer(index, make_tuple(g1, g2))(Xs, Ys, Zs)
put Zs at last when unifyparameter as it may have u-monad or io-monad
use joined args other than broadened one as some extra parameter which is not a parameter of while_header can be add to while_body
inline fprop_switch forcely
reorder the parameter if one of the parameter is Monad when incorporate call
incorporate switch tuple_getitem if item 0 of tuple is EnvInstance or
item 1 of tuple is bprop function
addn with shape() and shape(1)
remove context_ from FuncGraphEvaluator to make it re-entry able to resolve evaluator stuck issue because of re-entry of the same FuncGraphEvaluator
5 years ago
lichenever
c3da4da31f
optimize_pipeline
4 years ago
yujianfeng
697855313f
Add arg to control whether the output of cell should be recomputed
4 years ago
huangbingjian
c7fd66ab29
code-self-check of irpass
4 years ago
zhangzhaoju
b412505073
correct codes according to commit
revert the code overwrite
4 years ago
zhangzhaoju
5c8130821c
fix cyclomatic complexity exceeds problem
5 years ago
zhangzhaoju
96fc878d67
Revert the memory leak solution which using weak_ptr;
The master/R1.2 has new solution which clear func_graph_cnodes_index_
while function graph manager free;
need merge the solution of R1.2
5 years ago
zhangzhaoju
5aac1e25d2
fix formate bug
5 years ago
zhangzhaoju
bf98fcef56
issue#I3ARG6
lenet memory leak fix
5 years ago
huangbingjian
e5d32c9ff8
add switch_defer_inline
5 years ago
dayschan
771e3f61f3
Clean GraphKernel's codes from frontend
1. set class GraphKernel as deprecated, and treat it as Cell
2. set class InplaceAssign as deprecated, suggested using Assign instead.
3. set op_selector as deprecated, removed the _selected_ops and _selected_grad_ops, replaced with real operations
4. removed the two passes of GraphKernel from frontend
5. removed the GraphKernel's codes from other modules
5 years ago
yujianfeng
08e00b20a9
Move the whole graph nodes firstly for the single used graph when inline
5 years ago
Zhang Qinghua
25a2b8cd5b
Never inline middle after block for control flow.
5 years ago
Zhang Qinghua
3ea67d4549
Refactor and simplify the inlining procedure.
5 years ago
lichenever
2e1c43483e
add auto parallel pipeline
5 years ago
mindspore-ci-bot
244b7034e8
!7926 [ME][OptPass]fix bug when eliminate unused parameter in 'inline' pass
From: @chenfei52
Reviewed-by:
Signed-off-by:
5 years ago
chenfei
e41c304b3e
dump ir of subpass of every substitution
add cache for transformed graph in inline
5 years ago
Yi Huaijie
d7faa77b5e
support int64 shape
5 years ago
huangdongrun
1bd9fefd84
support if by if not inline
add testcase of net of if by if
5 years ago
mindspore-ci-bot
f875bf21bc
!2948 fix control flow
Merge pull request !2948 from amongo/FixControlFlow
5 years ago
huangdongrun
2a6d346d2f
support if by if grad parameter
add join for ref
adjust env eliminate to eliminate all env ops
add partial app cache
resolve while endless
fix env eliminate
support for "for while" cases
fix join shape error
5 years ago
panyifeng
1c296b96c9
fix switch layer sigle prim cell
5 years ago
liubuyu
a499d4e47c
decoupling core and debug
5 years ago
liubuyu
f4bc0bc9fe
move the dependency of utils to core
5 years ago
He Wei
60d168adec
Decouple ir from optimizer
5 years ago
liubuyu
76dc80e7b7
Unified code style
5 years ago
liubuyu
43c79eb853
mindspore path adjust
5 years ago