Author: Tony Werten
Date: 00:19:12 06/30/04
Go up one level in this thread
On June 29, 2004 at 18:03:10, Robert Hyatt wrote:
>On June 29, 2004 at 16:04:23, Vincent Diepeveen wrote:
>
>>On June 29, 2004 at 12:52:43, Robert Hyatt wrote:
>>
>>>On June 29, 2004 at 12:31:00, Vincent Diepeveen wrote:
>>>
>>>>On June 29, 2004 at 09:00:51, Ingo Bauer wrote:
>>>>
>>>>>On June 29, 2004 at 08:26:15, Zach Wegner wrote:
>>>>>
>>>>>>One important point is that crafty uses bitboards, so it will have an additional
>>>>>>speedup on a 64 bit processor.
>>>>>
>>>>>http://www.talkchess.com/forums/1/message.html?372849
>>>>>
>>>>>According to yesterdays news its ~47%. Assuming that the hardware is equal and
>>>>>that double speed gives 60 ELO Crafty wins 30 ELO. We will see soon if this will
>>>>>be enough.
>>>>>
>>>>>Bye Ingo
>>>>
>>>>The 32 bits version is using 8 registers.
>>>>The 64 bits version uses 16 registers.
>>>>
>>>>And another few tiny differences.
>>>>
>>>>Crafty loses always 1 register to index which thread it is using, so the
>>>>advantage of going from 8 to 16 is a big one.
>>>>
>>>>Then i do not know whether the 64 bits version uses inline assembly versus the
>>>>32 bits version not using it and the compiler versions and type of compilers
>>>>used is unclear.
>>>
>>>
>>>If you are going to write about what you don't know, we are going to be here all
>>>day.
>>>
>>>the pointer cost me 3-4% when I added it a few years back. That is not going to
>>>be a "big one" when moving to 16 registers.
>>>
>>>Both versions use inline assembly for FirstOne() and LastOne() and that's it.
>>>There is no other assembly in Crafty other than my spinlock code for the SMP
>>>stuff...
>>>
>>>On windows there is no inline asm at all as windows has a built-in intrinsic to
>>>get to BSF/BSR...
>>
>>Do you run in windows at the world champs 2004?
>
>If I could, yes. the compiled executables Eugene produces are faster than
>anything I can do on linux.. And XP runs crafty just as well, and Eugene's numa
>memory stuff works just fine with no twiddling as I have to do on linux from
>version to version..
>
>However, here is the huge amount of inline asm I have in Crafty:
>
>int static __inline__ FirstOne(long word)
>{
> long dummy, dummy2;
>
>asm(" bsrq %0, %1" "\n\t"
> " jnz 1f" "\n\t"
> " movq $-1, %1" "\n\t"
> "1: movq $63, %0" "\n\t"
> " subq %1, %0" "\n\t"
> :"=r&"(dummy), "=r&" (dummy2)
> :"0"((long) (word))
> :"cc");
> return (dummy);
>}
>
>
>int static __inline__ LastOne(long word)
>{
> long dummy, dummy2;
>
>asm(" bsfq %0, %1" "\n\t"
> " jnz 1f" "\n\t"
> " movq $-1, %1" "\n\t"
> "1: movq $63, %0" "\n\t"
> " subq %1, %0" "\n\t"
> :"=r&"(dummy), "=r&" (dummy2)
> :"0"((long) (word))
> :"cc");
> return (dummy);
>}
>
>
>Ten whole assembler instructions. And had I renumbered my bits in the right
>way, this would be a grand total of _two_ assembler instructions rather than 10.
I've read that before. What is the right way ?
H8 at bit0 and A1 at bit63 ? And why ?
Tony
>
>Crafty really does have a "huge amount of inline assembly" doesn't it???
>
>Please stop saying that.
>
>
>
>
>>
>>This i ask because Eugene's beta compiler won't run under linux i guess...
>
>
>Of course it won't. It is a windows product.
>
>
>
>
>>
>>By the way i thought Eugene was working at the IA64 a while ago, has that team
>>been moved to x86-64 nowadays and has IA64 development been stopped now?
>
>
>I can't speak for him. His compiler works on _all_ platforms, obviously. He is
>working on all three so far as I know.
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.