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

Reply via email to