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
zhang__sss
0dd68aa7eb
grad
4 years ago
zhang__sss
8bae4d9d50
grad
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
i-robot
f98cc8dce2
!23599 Handle real to complex in bprob
Merge pull request !23599 from zhouyaqiang0/complex_ops
4 years ago
zhouyaqiang
3d01cb0c3d
handle real to complex bprob
4 years ago
l00591931
247386af9b
Fix codedex
4 years ago
huanghui
ba66c0d491
add security isolate for save_graphs
4 years ago
7347157+joylvliang@user.noreply.gitee.com
0fb07a6377
eliminate_forward_cnode_in_grad_graph_decorated_by_ms_function
4 years ago
ms_yan
36a8886ca2
Revert "[feat] [assistant] [I3T96T] add new Dataset operator CMUARCTICDataset"
This reverts commit b077aa1cab .
Revert "[feat] [assistant] [I3T96X] add new Dataset operator LibriSpeechDataset"
This reverts commit 4e6f7dc97d .
delete pass_registry_test.cc
comment hiai_nlu_model_multi.pb related line
4 years ago
djc
4e6f7dc97d
[feat] [assistant] [I3T96X] add new Dataset operator LibriSpeechDataset
4 years ago
zjun
35aab6144d
Fix pynative memory leak
Signed-off-by: zjun <zhangjun0@huawei.com>
4 years ago
zhangzhaoju
c7e6ad4f7d
Add swtich to controll cache or not cache graph for ad
4 years ago
i-robot
7295e106e6
!20595 Erase input replace in pynative train process
Merge pull request !20595 from zjun/erase_input
4 years ago
i-robot
dead967db2
!20494 fix code warning
Merge pull request !20494 from lianliguang/code_warning_master
4 years ago
zjun
82653f31f7
Erase input replace
Signed-off-by: zjun <zhangjun0@huawei.com>
4 years ago
lianliguang
3bca7466dd
fix codex pclint and code check2.0
4 years ago
i-robot
5faf074413
!20549 Code check cleanup.
Merge pull request !20549 from Margaret_wangrui/clean_code
4 years ago
i-robot
439842c19c
!20517 fix clean code problem in master
Merge pull request !20517 from huangbingjian/clean_code_master
4 years ago
Margaret_wangrui
737970cd89
code check clean up
4 years ago
huangbingjian
2e863dbccc
fix clean code problem
4 years ago
yujianfeng
615c977caa
code check cleanup
4 years ago
joylvliang
356c9361bd
fix_memory_not_enough_in_pynative_mode
4 years ago
zjun
4e550e5b42
Fix sens bug
Signed-off-by: zjun <zhangjun0@huawei.com>
4 years ago
zjun
8a5731d899
Fix bprop bug
Signed-off-by: zjun <zhangjun0@huawei.com>
4 years ago
zjun
462723978c
Fix bprop bug
Signed-off-by: zjun <zhangjun0@huawei.com>
4 years ago
chujinjin
03ed974d98
begin bprop from last node
4 years ago
lvliang
32da2cea42
create multi make tuple for nested tuple output
5 years ago
lvliang
ff32f68513
fix core dump when case run together
5 years ago
zhangzhaoju
5c8130821c
fix cyclomatic complexity exceeds problem
5 years ago
chujinjin
a7c4cb42fe
fix cpplint
5 years ago
lvliang
9df5e3f50f
support_ms_function_in_pynative_refactor
5 years ago
zhousiyi
6c4695dfe1
fprop can use acutal arg or k_node as input
5 years ago
zjun
2bc5456ef8
Fix high order grad
Signed-off-by: zjun <zhangjun0@huawei.com>
5 years ago
lvliang
85ad1afdad
support_constant_as_last_node
5 years ago
zhousiyi
64dbaefad5
support second grad with bprop_cnode
5 years ago
zhousiyi
4ff19b7082
add API to build bprop funcgraph which can be used for higher grad
5 years ago
lvliang
1fec9ef99a
add_adjoint_for_parameter_at_KPynativeBegin
5 years ago
lvliang
f1213ddb97
add_a_temp_solution_for_side_effect_grad_case_failed
5 years ago
lvliang
a4eba53e55
fix_static_check
5 years ago
zhousiyi
1d46927d5b
If the last node is TupleGetItem or ListGetItem, build a adjoint for it
5 years ago
zhousiyi
001f9d9866
set abstract for bprop_app and tuple_getitem(bprop_app, i)
5 years ago
lvliang
c0397d1dc5
set_real_output_node_and_change_parameter_to_valuenode
5 years ago
chujinjin
f394d696d2
fix compile error
5 years ago
chujinjin
bcb9aff9fe
fix cpp lint
5 years ago
chujinjin
da6ee50145
fix clang format
5 years ago
lvliang
b54b9d22d0
fix_bug_of_index_out_of_tuple
5 years ago
zhousiyi
9ebd20a092
Fake bprop funcgraph if the bprop of prim is not defined
5 years ago
zhangzhaoju
0824294e8b
using param instead args for top bprop graph
5 years ago
zhousiyi
7f3e0c2123
build sens with ones-like if not given by caller
5 years ago