That reduces it to searches left and right for the spans of zeros in which the phrase occurs. After some shift and a mask, each of these reduces to finding the first 1 in a 64-bit int, which can be done in one instruction on Intel and has a gcc builtin. http://en.wikipedia.org/wiki/Find_first_set
Kenneth On 12/12/2014 07:57 PM, Kenneth Heafield wrote: > Don't recompute the future cost each time. Compute the delta. > > https://github.com/kpu/mtplz/blob/master/decode/future.hh > > On 12/12/2014 10:15 AM, Martin Liška wrote: >> On 12 December 2014 at 15:54, Barry Haddow <[email protected]> >> wrote: >>> Hi Martin >>> >>> Interesting work - thanks for sharing. >>> >>> I was just curious about this comment: >>> >>>> Moses::Hypothesis::EvaluateWhenApplied method is dominated by calculation >>>> of bit intervals. More precisely, for a given set represented in bits: >>>> 010011, we would like identify consecutive zero chunks: <3-4> and <6-6>. I >>>> am not familiar with any vector instruction solution which can help >>> >>> Where is the calculation of bit intervals done? If this is a big issue, >>> could they be precalculated somehow? Bit vectors start off as all zeroes, >>> then each time a bit is flipped, the a zero chunk is split, >>> >>> cheers - Barry >> >> Hello Barry. >> >> This calculation is processed in >> https://github.com/moses-smt/mosesdecoder/blob/master/moses/SquareMatrix.cpp#L40, >> Mentioned function takes words bitmap, calculates consecutive zero >> chunks and calls GetScore for each of these chunks. >> >> I am not sure it can beneficial to have a list of these chunks >> maintained after each flip operation. >> >> Martin >> >> >>> >>> >>> On 12/12/14 12:45, Martin Liška wrote: >>>> >>>> Hello. >>>> >>>> As part of my SUSE Hackweek project ([1]), I've spent couple of days >>>> playing with Moses performance tuning. I cooperated with Aleš and our >>>> effort produced two patches that have been just merged to mainline. If >>>> you are interested in more details, please visit my blog post: [2]. >>>> I would be really happy if my blog post would become a kick-off for >>>> further performance tuning. >>>> >>>> Thanks, >>>> Martin Liška, >>>> SUSE Labs >>>> >>>> [1] https://hackweek.suse.com/11/projects/284 >>>> [2] http://marxin.github.io/posts/moses-performance-tuning/ >>>> >>>> _______________________________________________ >>>> Moses-support mailing list >>>> [email protected] >>>> http://mailman.mit.edu/mailman/listinfo/moses-support >>> >>> >>> >>> -- >>> The University of Edinburgh is a charitable body, registered in >>> Scotland, with registration number SC005336. >>> >> >> _______________________________________________ >> Moses-support mailing list >> [email protected] >> http://mailman.mit.edu/mailman/listinfo/moses-support >> > _______________________________________________ > Moses-support mailing list > [email protected] > http://mailman.mit.edu/mailman/listinfo/moses-support > _______________________________________________ Moses-support mailing list [email protected] http://mailman.mit.edu/mailman/listinfo/moses-support
