Commit Graph

29 Commits

Author SHA1 Message Date
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.
2021-11-24 10:47:40 +08:00
yangzhenzhang 8431ba616c add output strategy for op init 2021-11-10 15:35:45 +08:00
yangzhenzhang 6ad6304b77 add output strategy 2021-11-04 16:28:54 +08:00
Xiaoda Zhang ae2d3b4832 adjust the device matrix for onehot use in moe 2021-08-25 14:36:06 +08:00
yangzhenzhang d711d98f07 clean duplicate code 2021-05-25 17:25:34 +08:00
jinyaohui 30a27b2adb modify Gelu、FastGelu to GeLU and FastGeLU 2021-02-05 17:19:52 +08:00
mindspore-ci-bot ad5b033cc5 Change L2Norm, r1.1 to master 2021-02-05 09:42:43 +08:00
l00591931 9ec100d069 Change TensorAdd to Add, from r1.1 to master 2021-02-01 17:53:52 +08:00
yangzhenzhang 38ea8784c6 update infer mirror ops 2021-01-15 14:53:21 +08:00
yangzhenzhang 0c2c76d037 update get rank in parallel ops 2020-11-13 16:43:44 +08:00
Yi Huaijie d7faa77b5e support int64 shape 2020-11-05 21:15:49 +08:00
mindspore-ci-bot 8bfe141680 !7571 fix bug in reshape strategy search when reshape as the first operator
Merge pull request !7571 from yao_yf/reshape_strategy_search_fix_when_reshape_is_first_op
2020-10-22 10:16:33 +08:00
yao_yf f7189adb91 fix bug in reshape strategy search when reshape is first operator 2020-10-22 09:15:18 +08:00
yangzhenzhang eb6f4e3ce8 update repeated calculation 2020-10-21 16:13:58 +08:00
yangzhenzhang fc4ed975c4 handle repeated calculation 2020-10-19 10:47:01 +08:00
Yi Huaijie 518cb80133 change type of Shape from int32 to int64 2020-08-04 11:30:23 +08:00
suteng 19e45ccdb1 回退 'Pull Request !3103 : change type of Shape from int32 to int64' 2020-08-03 22:06:37 +08:00
Yi Huaijie 15d5cc396d change type of Shape from int32 to int64 2020-08-03 16:47:19 +08:00
liubuyu 43c79eb853 mindspore path adjust 2020-07-14 18:07:28 +08:00
yao_yf f0bf438a55 reshape strategy search 2020-05-09 17:00:37 +08:00
Xiaoda Zhang 0ac50a19f5 Model the memory cost in auto-parallel. It is calculated by the output of operators, plus the parameters. Additionally, modify the graph-operations in auto_parallel to include memory_cost. 2020-04-14 11:39:31 +08:00
buxue 5841fe010e Support pow's second input could be tensor and fix bug in bprop of pow 2020-04-11 16:16:58 +08:00
yangzhenzhang b34c0e7a17 add parallel op for dropoutdomask 2020-04-11 12:11:22 +08:00
c00425699 b413638f23 refactor OperatorCostPtr in OperatorInfo 2020-04-09 20:37:52 +08:00
mindspore-ci-bot 2e6e94b2b6 !177 prelu operator support parallel on the channel
Merge pull request !177 from yao_yf/fix_auto_parallel_prelu
2020-04-09 14:08:41 +08:00
yao_yf b5e3fa9593 fix auto parallel prelu 2020-04-08 20:45:08 +08:00
Xiaoda Zhang a153fad874 This commit is to separate the computation cost and memory cost in auto_parallel. Some related memory correction is removed. 2020-04-08 11:52:19 +08:00
c00425699 3bb48ffee1 use std::vector instead of std::list to promote performance for parallel module 2020-03-31 15:16:00 +08:00
zhunaipan 930a1fb0a8 initial version
Signed-off-by: leonwanghui <leon.wanghui@huawei.com>
2020-03-27 22:54:54 +08:00