Author: Gerd Isenberg
Date: 02:53:08 07/29/04
Go up one level in this thread
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
>I haven't had a chance to use Altivec for chess yet. Although I have been
>playing with some ideas.
>
>Mostly I have done DSP code; signal analysis, transformation FFT, digital
>filters and different modulation types PSK, QAM, AM, FM and analysis for hopped
>signals.
>Altivec was fun because it made me think about some of the algorithms in a
>different way and it turned out to be a better way of doing things.
>
>In the game department I did a game of life (several different versions of it),
>which turned out to be extremely fast and then combined it with openGL.
>
>Also some Cellular Automata algorithms, but I have no comparison for those since
>I never implemented them in any other way.
>
>Regards,
>Hristo
>
<snip>
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.