Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.
Comunicados
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

Thread Data Exchange through L3 Cache

bmeardon
Novato
1.046 Visualizações

Hello,

I have hopefully a quick question...

I'm using a dual socket quad core (HT) Xeon X5570. It is a NUMA machine with each core having its own L1 and L2 caches and each socket's cores share a single L3 cache on the die. My question revolves around access and coherence specifically with the shared L3 cache.

I'm looking to have the most efficient communication between threads that will only run on cores on the same socket sharing the same L3 cache. I'm looking to do this through having a shared memory block (an array) that is only accessed by threads on the same socket/L3 cache. If only these threads access this array (so no other cores on different sockets will access it), will write backs to main memory be required? I'm intersted in what the specific cache coherency mechanics will be under this scenario?

Thanks for your help.

Regards,

Brandon

0 Kudos
1 Solução
TimP
Colaborador honorário III
1.046 Visualizações
I guess you are asking about the situation where a thread modifies a cache line, then other threads on other cores want to read it. The updated cache line in L1 or L2 becomes the only copy which is valid, and it must be updated by copying to L3 before other cores can use it by updating their copy in L1 or L2. Cores on the same CPU don't need to wait for write back to memory, as cores on the other CPU must do.

Ver solução na publicação original

2 Respostas
TimP
Colaborador honorário III
1.047 Visualizações
I guess you are asking about the situation where a thread modifies a cache line, then other threads on other cores want to read it. The updated cache line in L1 or L2 becomes the only copy which is valid, and it must be updated by copying to L3 before other cores can use it by updating their copy in L1 or L2. Cores on the same CPU don't need to wait for write back to memory, as cores on the other CPU must do.
bmeardon
Novato
1.046 Visualizações
I thought that would be the answer and that confirms it. Thank you TimP!
Responder