Achieving peak bandwidth on multi-socket systems

Achieving peak bandwidth on multi-socket systems

Let's say each CPU socket has 43 GB/s of bandwidth through its four memory channels.  Let's say I have a dual socket system.  A reduction operation should achieve performance of 86 GB/s, but it doesn't.  It will still only achieve up to 43 GB/s.  Why is that and is there anything in Intel's OpenCL implementation for CPUs that can fix that?

How could I fix that outside of OpenCL?

3 posts / novo 0
Último post
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.

Dear James,

Can you please check if the following helps?

http://software.intel.com/forums/topic/497429

Thanks,

Arik

Citação:

Arik Narkis (Intel) escreveu:

Dear James,

Can you please check if the following helps?

http://software.intel.com/forums/topic/497429

Thanks,

Arik

Arik,

This method improves bandwidth performance substantially (by >1.8x).  It actually achieves 90+% of the platform bandwidth for my code rather than the ~50% of peak bandwidth I had the other day.  I'm a bit surprised it actually worked.  I'd like to test it on a four or eight socket system now, but I'll have to find one.

Knowing this now makes life more difficult for OpenCL developers with bandwidth-bound kernels on multi-socket nodes.  Thanks a lot, Arik!

-James

Faça login para deixar um comentário.