Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
兽拳
Paddle
提交
25ffa844
P
Paddle
项目概览
兽拳
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
25ffa844
编写于
11月 05, 2019
作者:
T
Tao Luo
提交者:
GitHub
11月 05, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refine murmurhash3_x64_128 for bloom_filter (#20996)
test=develop
上级
878a40f5
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
24 addition
and
43 deletion
+24
-43
paddle/fluid/operators/math/bloomfilter.h
paddle/fluid/operators/math/bloomfilter.h
+24
-42
paddle/fluid/operators/pyramid_hash_op.cc
paddle/fluid/operators/pyramid_hash_op.cc
+0
-1
未找到文件。
paddle/fluid/operators/math/bloomfilter.h
浏览文件 @
25ffa844
...
...
@@ -101,42 +101,26 @@ void murmurhash3_x64_128(const void *key, const int len, const uint32_t seed,
const
uint8_t
*
tail
=
(
const
uint8_t
*
)(
data
+
nblocks
*
16
);
uint64_t
nk1
=
0
;
uint64_t
nk2
=
0
;
// no break here!!!
switch
(
len
&
15
)
{
case
15
:
nk2
^=
((
uint64_t
)
tail
[
14
])
<<
48
;
case
14
:
nk2
^=
((
uint64_t
)
tail
[
13
])
<<
40
;
case
13
:
nk2
^=
((
uint64_t
)
tail
[
12
])
<<
32
;
case
12
:
nk2
^=
((
uint64_t
)
tail
[
11
])
<<
24
;
case
11
:
nk2
^=
((
uint64_t
)
tail
[
10
])
<<
16
;
case
10
:
nk2
^=
((
uint64_t
)
tail
[
9
])
<<
8
;
case
9
:
nk2
^=
((
uint64_t
)
tail
[
8
])
<<
0
;
uint64_t
tail0_64
=
*
(
uint64_t
*
)(
tail
);
// NOLINT
uint64_t
tail_64
=
*
(
uint64_t
*
)(
tail
+
8
);
// NOLINT
uint64_t
mask0
=
0xffffffffffffffff
;
uint64_t
mask
=
0x00ffffffffffffff
;
int
flag
=
len
&
15
;
if
(
flag
&&
flag
<=
8
)
{
tail0_64
&=
(
mask0
>>
((
8
-
flag
)
<<
3
));
}
else
if
(
flag
>
8
)
{
tail_64
&=
(
mask
>>
((
15
-
flag
)
<<
3
));
nk2
^=
tail_64
;
nk2
*=
c2
;
nk2
=
ROTL64
(
nk2
,
33
);
nk2
*=
c1
;
h2
^=
nk2
;
case
8
:
nk1
^=
((
uint64_t
)
tail
[
7
])
<<
56
;
case
7
:
nk1
^=
((
uint64_t
)
tail
[
6
])
<<
48
;
case
6
:
nk1
^=
((
uint64_t
)
tail
[
5
])
<<
40
;
case
5
:
nk1
^=
((
uint64_t
)
tail
[
4
])
<<
32
;
case
4
:
nk1
^=
((
uint64_t
)
tail
[
3
])
<<
24
;
case
3
:
nk1
^=
((
uint64_t
)
tail
[
2
])
<<
16
;
case
2
:
nk1
^=
((
uint64_t
)
tail
[
1
])
<<
8
;
case
1
:
nk1
^=
((
uint64_t
)
tail
[
0
])
<<
0
;
}
if
(
flag
)
{
nk1
^=
tail0_64
;
nk1
*=
c1
;
nk1
=
ROTL64
(
nk1
,
31
);
nk1
*=
c2
;
...
...
@@ -158,9 +142,7 @@ void murmurhash3_x64_128(const void *key, const int len, const uint32_t seed,
h1
+=
h2
;
h2
+=
h1
;
// ((uint64_t *)out)[0] = h1;
reinterpret_cast
<
uint64_t
*>
(
out
)[
0
]
=
h1
;
// ((uint64_t *)out)[1] = h2;
reinterpret_cast
<
uint64_t
*>
(
out
)[
1
]
=
h2
;
}
...
...
paddle/fluid/operators/pyramid_hash_op.cc
浏览文件 @
25ffa844
...
...
@@ -20,7 +20,6 @@ limitations under the License. */
extern
"C"
{
#include "math/bloomfilter.h"
// void* memcpy1(void* dst, void* src, uint32_t length);
}
namespace
paddle
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录