提交 9527859c 编写于 作者: M Megvii Engine Team

feat(opcache): add ndim and has_value to cache key

GitOrigin-RevId: ad073d389eeddb33bf58652a40abed7b621bc837
上级 cbb47089
......@@ -44,6 +44,12 @@ struct OpMethArgs {
if (inputs[i].layout.dtype != rhs.inputs[i].layout.dtype) {
return false;
}
if (inputs[i].layout.ndim != rhs.inputs[i].layout.ndim) {
return false;
}
if (inputs[i].value.empty() != rhs.inputs[i].value.empty()) {
return false;
}
}
return extras == rhs.extras;
}
......@@ -57,12 +63,14 @@ template <typename... TExtraArgs>
inline size_t OpMethArgs<TExtraArgs...>::hash() const {
XXHash state;
size_t length = 0;
size_t data[1 + 2 * inputs.size() + sizeof...(TExtraArgs)];
size_t data[1 + 4 * inputs.size() + sizeof...(TExtraArgs)];
auto append = [&](size_t hash) { data[length++] = hash; };
append(op->hash());
for (auto&& i : inputs) {
append(mgb::hash(i.layout.dtype.handle()));
append(mgb::hash(i.comp_node));
append(mgb::hash(i.layout.ndim));
append(mgb::hash(i.value.empty()));
}
std::apply([&](auto&&... extras) { (append(mgb::hash(extras)), ...); }, extras);
mgb_assert(length == sizeof(data) / sizeof(size_t));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册