Processors
Intel® Processors, Tools, and Utilities
14503 Discussions

Does the CPU only handle one task at a time?

ssote
New Contributor II
3,153 Views

Does the CPU only process one task at a time?

0 Kudos
9 Replies
idata
Employee
752 Views

Hello wingman99,

 

 

 

What is the CPU model?

 

 

Intel multiple cores processor can run multiple instructions at the same time increasing overall speed for programs amenable to parallel computing and these processors have the http://www.intel.com/content/www/us/en/architecture-and-technology/hyper-threading/hyper-threading-technology-video.html Intel® Hyper-Threading Technology that enables the Intel® Core™ processors to perform multiple tasks simultaneously.

 

 

 

Regards,

 

 

Ivan.

 

0 Kudos
ssote
New Contributor II
752 Views

Can the multiple cores processor output and input the tasks to the system memory at the same time?

0 Kudos
idata
Employee
752 Views

Normal ddr3 ram as I know, can fetch one at a time(64 bit chunks) but it has pipeline so it can compute new address requests while giving old results.

This ram also has interleaving mode so each memory bank has a neighboring address. I think this is a kind of load balancing between memory banks, memory sticks and maybe numa nodes. When you read 4 bytes, you can read 4 banks at the same time. So even a single thread/core can read/write at good speeds.

Also while pipelining, RAM's cache can be accesses at the same time so there could be read speeds that are more than RAM's sustained throughput for a short time.

But good codes access ram less, so cache becomes more important for quality codes, and a cache has many more lines(and bandwidth) to serve all cores. Also a software's memory access pattern is important to use all those lines efficiently. For exapmle, if you have a 2-bank 2-way interleaved ram, you should read 1,2,3,4,5,6,7,... addresses instead of 2,4,6,8 because this reads only single bank. 1,2,3,4,5 reads from all banks. Some processors have ability to decouple channel operations so individual cores can access different channels at the same time. This can increase multithreaded software but clamped version increases single thread performance (generally) and gaming probably. But processors are so advanced, clamped vs decoupled may not be different in performance.

So, professional software should get better performance from more memory channels. 4 channels should beat 3 channels for example. But gaming, is not very optimized for this, as benchmarks shown, they are optimized for gpu.

When an adress is accesed twice, ram is not important anymore because of cache. When accessing only for once, cpu performance doesn't matter already. It is a stream now, maybe between a server and a client and will be forgotten after using it(listening to music maybe? streaming video(gpu acceleration is enabled)?) and single core is enough generally.

0 Kudos
ssote
New Contributor II
752 Views

Tugrul_8192bit wrote:

Normal ddr3 ram as I know, can fetch one at a time(64 bit chunks) but it has pipeline so it can compute new address requests while giving old results.

This ram also has interleaving mode so each memory bank has a neighboring address. I think this is a kind of load balancing between memory banks, memory sticks and maybe numa nodes. When you read 4 bytes, you can read 4 banks at the same time. So even a single thread/core can read/write at good speeds.

Also while pipelining, RAM's cache can be accesses at the same time so there could be read speeds that are more than RAM's sustained throughput for a short time.

But good codes access ram less, so cache becomes more important for quality codes, and a cache has many more lines(and bandwidth) to serve all cores. Also a software's memory access pattern is important to use all those lines efficiently. For exapmle, if you have a 2-bank 2-way interleaved ram, you should read 1,2,3,4,5,6,7,... addresses instead of 2,4,6,8 because this reads only single bank. 1,2,3,4,5 reads from all banks. Some processors have ability to decouple channel operations so individual cores can access different channels at the same time. This can increase multithreaded software but clamped version increases single thread performance (generally) and gaming probably. But processors are so advanced, clamped vs decoupled may not be different in performance.

So, professional software should get better performance from more memory channels. 4 channels should beat 3 channels for example. But gaming, is not very optimized for this, as benchmarks shown, they are optimized for gpu.

When an adress is accesed twice, ram is not important anymore because of cache. When accessing only for once, cpu performance doesn't matter already. It is a stream now, maybe between a server and a client and will be forgotten after using it(listening to music maybe? streaming video(gpu acceleration is enabled)?) and single core is enough generally.

I have not seen professional software Benchmarks benefit from multi channel memory. When the 64bit cores are accessing dual channel system memory one core at a time 128bit, wouldn't the memory have to go to cache buffering according to software coding? looking at all the Benchmarks I can find I don't see much gains in multi channel memory, I think data memory predictions can only go so far.

0 Kudos
idata
Employee
752 Views

More channels help when copying data to multiple GPUs at the sametime communicating through ethernet at high speed and similar array operations.

0 Kudos
ssote
New Contributor II
752 Views

Tugrul_8192bit wrote:

More channels help when copying data to multiple GPUs at the sametime communicating through ethernet at high speed and similar array operations.

I agree it is good with array operations. Have you had computer training?

0 Kudos
idata
Employee
752 Views

Once I trained a simple neural network on a spiral data just as shown on some tutorials. But I didn't benchmark it for memory accesses. It was encog's java bindings library then I wrote a similar method but it is hard to get past false maxima points.

0 Kudos
idata
Employee
752 Views

Thank you for this feedback and for sharing this valuable information each other, this is what the community is for.

 

 

 

Best wishes,

 

 

Ivan.

 

0 Kudos
Reply