Author: Walter Faxon
Date: 21:07:12 07/29/04
Go up one level in this thread
On July 29, 2004 at 05:53:08, Gerd Isenberg wrote:
>On July 29, 2004 at 05:04:50, Hristo wrote:
>
>>On July 29, 2004 at 04:32:56, Gerd Isenberg wrote:
>>
>>>On July 29, 2004 at 03:22:54, Hristo wrote:
>>>
>>>>On July 28, 2004 at 18:34:32, Joshua Shriver wrote:
>>>>
>>>>>Has anyone here done a test of Apple's G5 vs an AMD Opteron?
>>>>>
>>>>>
>>>>>Right now, I'm at a critical state in my source code.
>>>>>While I do love Apple, I'm wondering which is better to go with.
>>>>>Apple G5's or AMD Opteron's (Intel Itanium is out of the equation... to
>>>>>expensive and not worth it comapred to Opteron)
>>>>>
>>>>>I've slaved over burgers, and over the year even tacos... I've saved up enough
>>>>>money... and can buy one or the other..
>>>>
>>>>If you switch to lettuce you might be able to get a Cadillac too. :-)
>>>>
>>>>>
>>>>>Right now I really like and love the Apple G5... and to behonest... would love
>>>>>to have a G5... (but mostly as a desktop OS for my own enjoyment)...
>>>>
>>>>I would do exactly that!
>>>>The G5 is a more interesting CPU and the Apple systems are generally better than
>>>>the PCs (AMD, Intel).
>>>
>>>
>>>Even in the past Motorola CPU's had IMHO the "better" designs.
>>>6502 versus 8080 or 68000 versus the "awful" 8086.
>>>Unfortunately, for what reasons ever, i allways programmed for Intel/AMD cpus.
>>>
>>>Thanks to AMD64 my "sympathy gap" between Intel/AMD and Motorola/IBM becomes
>>>narrower.
>>>
>>>
>>>>
>>>>I find it to be very entertaining to play with Altivec.
>>>
>>>
>>>Yes, it looks Altivec SIMD instructions are much more consistent than Intel's
>>>SIMD instructions:
>>>
>>>http://www.simdtech.org/apps/group_public/download.php/26/Altivec%20formatted.1.2.pdf
>>>
>>>What kind of algorithms did you try with Altivec?
>>>Did you tried Kogge-Stone sliding attack getters?
>>>What about a bit[64]*short[64] or bit[64]*byte[64] dot products?
>>
>>I don't know what the "Kogge-Stone" algorithm is. ;-/
>
>A parallel prefix fill algorithm, introduced here in CCC by Steffan Westcott, to
>generate sliding attacks in one direction with two bitboards, the generator and
>the propagator. The generator is the set of the sliding pieces, (eg. rooks) the
>propagator is the set of empty squares.
>
>For AMD64 i intend to use 128-bit wrappers for "vectors" of two bitboards.
>One with 128-bit SIMD registers (SSE2 -> xmm registers), the other with pairs of
>64-bit general purpose registers. In general i use template functions for
>Kogge-Stone, where the type template determines the register incarnation of the
>bitboard vector. The vector usually contain bitboards for white and black as
>well as other disjoint generators:
>
>template <class T>
>void upAttacks(sTarget* pTarget, const sSource* pSource)
>{
> T gu(&pSource->rooks);
> T pu(&pSource->occup);
> pu = ~pu; // empty squares
>
> gu |= pu & (gu<<8);
> pu &= pu<<8;
> gu |= pu & (gu<<16);
> pu &= pu<<16;
> gu |= pu & (gu<<32);
>
> (gu<<8).store(&pTarget->up);
>}
>
>Horizontal or diagonal directions require one leading and one trailing "and" to
>get rid of the board wraps.
>
>Gerd
Hi, Gerd!
Have you considered producing a web page to consolidate all your advanced bit
algorithms (SIMD etc.) for other programmers? The alternative is for us to do a
lot of searching in the CCC archives -- and still maybe not getting your best
thoughts.
That is, if you want to encourage competitors to experiment with your tools...!
:)
-- Walter
[remainder snipped ]
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.