Programs 64b processor

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

Hood
Posts: 660
Joined: Mon Feb 08, 2010 12:52 pm
Location: Polska, Warszawa

Programs 64b processor

Post by Hood »

Hi,

is that 64b architecture neccassary, what is an advantage? 32bit seems to be enough to host chess program. Programs are not so big to need 64b addrress space.

The reason might be Java which is memory consuming when garbage collector is sleeping :) but good written C program ....

Rgds Hood
Vinvin
Posts: 5333
Joined: Thu Mar 09, 2006 9:40 am
Full name: Vincent Lejeune

Re: Programs 64b processor

Post by Vinvin »

64 bits is more about 64 bits instructions (especially for bitboard engines). You need about 1 clock cycle (1*64-bit instruction) instead of 2 clock cycle (2*32-bit CPU instuction).
I hope I was clear ...

Vincent
Hood wrote:Hi,

is that 64b architecture neccassary, what is an advantage? 32bit seems to be enough to host chess program. Programs are not so big to need 64b addrress space.

The reason might be Java which is memory consuming when garbage collector is sleeping :) but good written C program ....

Rgds Hood
lucasart
Posts: 3243
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Programs 64b processor

Post by lucasart »

Hood wrote:Hi,

is that 64b architecture neccassary, what is an advantage? 32bit seems to be enough to host chess program. Programs are not so big to need 64b addrress space.

The reason might be Java which is memory consuming when garbage collector is sleeping :) but good written C program ....

Rgds Hood
Nothing to do with adress space. Besides, the Linux PAE kernel has since long been capable of adressing up to 64 GB on a 32 bit machine. Java is a very bad choice for programing, whether a chess engine or anything else, but especially a chess engine.
it's all to do with bitboards...
syzygy
Posts: 6020
Joined: Tue Feb 28, 2012 11:56 pm

Re: Programs 64b processor

Post by syzygy »

lucasart wrote:Nothing to do with adress space. Besides, the Linux PAE kernel has since long been capable of adressing up to 64 GB on a 32 bit machine. Java is a very bad choice for programing, whether a chess engine or anything else, but especially a chess engine.
it's all to do with bitboards...
For sure the bitboards thing is the most important argument for chess engines. On the x86 architecture, 64 bit also means having more CPU registers available which also results in faster

Given that chess engines profit from more RAM, and the available RAM nowadays easily goes beyond 4GB, the address space argument doesn't seem completely irrelevant either. I don't know of any 32-bit engines that address more than 4GB (or in fact 3GB), even if that might be possible with some trickery on some OS's.

Btw, the Linux 3.4 kernel now supports the X32 abi which means programs that can live with a 32-bit address space can still use the (many) 64-bit registers. Theoretically this should give some speed gain over regular 64-bit mode. Maybe we'll see 64-bit engines running in a 32-bit address space using PAE for >4GB hash tables...
neelbasant
Posts: 226
Joined: Sun Apr 01, 2012 7:57 pm

Re: Programs 64b processor

Post by neelbasant »

Hood wrote:Hi,

is that 64b architecture neccassary, what is an advantage? 32bit seems to be enough to host chess program. Programs are not so big to need 64b addrress space.

The reason might be Java which is memory consuming when garbage collector is sleeping :) but good written C program ....

Rgds Hood

As for me 64-bit architecture is better ( certainly).
Why ?

putting data in 32-bit processing is slower than 64-bit processing.
Certain application are of capable that. ( 64 bit application.)
I do not see any fully operable 64 bit software except chess, primavera.etc.
Even you can say these programs will not be capable of using 64-bit *2 ( 128 bit ).


You can imagine it as .
You have 32 lane(bit) for transportation.\
& now you have 64 lane ( bit) for transportation.
Now compare between these two, which will process faster.
I am not saying double but processing speed is up to 25 % to 45 %
depending on the software you are running.
syzygy
Posts: 6020
Joined: Tue Feb 28, 2012 11:56 pm

Re: Programs 64b processor

Post by syzygy »

neelbasant wrote:putting data in 32-bit processing is slower than 64-bit processing.
Only if you really need to process 64-bit values such as bitboards. Many many applications do not need 64-bit values, and in general they won't run faster as a result of compiling as a 64-bit program. In general, they run slower because 64-bit instructions and pointer values take up more space and therefore consume more memory bandwidth and cache.

The exception is the x86-32/64 architecture. On this architecture, 64-bit programs generally are faster than the equivalent 32-bit programs. The reason is that the x86-64 architecture provides double the amount of cpu registers compared to the x86-32 architecture. This has basically nothing to do with the fact that it is a 64-bit architecture. What happened is that AMD (who designed the x86-64 instruction set which was later adopted by Intel) took the transition to 64-bit as an opportunity to improve on the 32-bit x86 architecture by extending the set of general purpose registers (plus some other improvements).
You can imagine it as .
You have 32 lane(bit) for transportation.\
& now you have 64 lane ( bit) for transportation.
Only helps where 32-bit values are not enough.
Hood
Posts: 660
Joined: Mon Feb 08, 2010 12:52 pm
Location: Polska, Warszawa

Re: Programs 64b processor

Post by Hood »

Thank you all for the answers.

64 bitboard and more registers are logical reasons but it concerns x86 only.


3GB memory is enough for a chess program.
Speed of 64b operations is not quicker then 32b.

The 32b architecture is not inferior to 64b. !? In practice ony Strieka is showing it.



rgds Hood
syzygy
Posts: 6020
Joined: Tue Feb 28, 2012 11:56 pm

Re: Programs 64b processor

Post by syzygy »

Hood wrote:64 bitboard and more registers are logical reasons but it concerns x86 only.
Bitboards require 64-bit integers on all architectures, so bitboard engines profit from 64-bit regardless the precise architecture.

For non-bitboard engines, it seems likely that the 64-bit version will be faster than the 32-bit version only on x86, due to the increased number of registers.
3GB memory is enough for a chess program.
Well, if you have 32GB in your machine it would be a shame if a chess engine can never use more than 4GB.
Ralph Stoesser
Posts: 408
Joined: Sat Mar 06, 2010 9:28 am

Re: Programs 64b processor

Post by Ralph Stoesser »

lucasart wrote: Java is a very bad choice for programing
Nope. It comes in handy when developing big web applications. Hello Google Web Toolkit - Goodby Javasrcipt.
User avatar
geots
Posts: 4790
Joined: Sat Mar 11, 2006 12:42 am

Re: Programs 64b processor

Post by geots »

Hood wrote:Hi,

is that 64b architecture neccassary, what is an advantage? 32bit seems to be enough to host chess program. Programs are not so big to need 64b addrress space.

The reason might be Java which is memory consuming when garbage collector is sleeping :) but good written C program ....

Rgds Hood


You gotta realize chess really had little or nothing to do with the decision to up it to 64bit. Just like we have no choice about Windows 7- if we want the latest technology. Then Windows 8. Programmers saw the day was coming soon when everything newly built was going to be 64bit- they really had little or no choice if they wanted to keep up. I'm not saying they don't like 64bit better- just that when it was still in the "thinking" stages- chess was never given a thought.


gts