You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The perf utility reported a bottleneck in this area, where it's waiting for the
'target' variable to be finalized. By computing the next value of target early,
overall performance is increased by about 3% on a small (128MB) training file.
add next_target next to target in the variable list.
Then in the two negative sampling blocks:
...
if (d == 0) {
target = word;
label = 1;
next_random = next_random * (unsigned long long)25214903917 + 11;
next_target = table[(next_random >> 16) % table_size];
} else {
target = next_target;
if (target == 0) target = next_random % (vocab_size - 1) + 1;
next_random = next_random * (unsigned long long)25214903917 + 11;
next_target = table[(next_random >> 16) % table_size];
if (target == word) continue;
label = 0;
}
...
Original issue reported on code.google.com by chad.p...@gmail.com on 22 Jul 2015 at 6:40
The text was updated successfully, but these errors were encountered:
Potentially disregard, might not be valid. But there are a ton of pipeline
stalls in word2vec.
One thing that might have similar effect is to move next_random's value-getting
after using the value for target.
Original comment by chad.p...@gmail.com on 22 Jul 2015 at 4:05
Original issue reported on code.google.com by
chad.p...@gmail.com
on 22 Jul 2015 at 6:40The text was updated successfully, but these errors were encountered: