[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Altivec and ATLAS
My machine is a dual 533 Mhz G4 with 133 Mhz SDRAM, 64K of L1 cache, and
1 MB of L2 cache running at 233 Mhz.
ATL_mm4x4x2_1_pref.c makes a 670 Mflops SGEMM.
Using Altivec, I get a 1280 Mflops SGEMM; 2 Gflops with both processors
using pthreads.
The NB is 80. I do think that I can make this better; after all, the
Altivec unit can do 4 single-precision muladds per cycle!
I'm actually not much of an Altivec programmer. This is one of my first
efforts.
-Nick
On Friday, June 8, 2001, at 08:07 PM, R Clint Whaley wrote:
> Nick,
>
>> Unaligned C is okay - I've written unaligned load and store code for C,
>> and it results in about a 5 or 10% performance penalty. My
>> Altivec-based single-precision L1 matmul is getting in the neighborhood
>> of 1.2 - 1.3 Gflops on my 533 Mhz G4. I can probably make it better
>> than that (scalar code gets about 670 Mflops).
>
> What scalar code gets 670Mflops? On the G4 I have intermittant access
> to,
> ATLAS's gemm peaks out around the Mhz . . . That system probably uses
> 66Mhz SDRAM (maybe 100Mhz at most) . . . I assume you have L2SIZE set
> to
> a very large value (for a G4, twice the actual L2 size) . . .
>
> Absolutely great results to already have roughly twice normal peak.
> Have
> you tried to build the full GEMM yet? What NB are you using to get that
> performance?
>
--
Nicholas Coult, Ph.D., web: http://melby.augsburg.edu/~coult
Assistant Professor, Department of Mathematics, Augsburg College
coult@augsburg.edu, phone: (612) 330-1064 office: Science Hall 137B