9 Replies Latest reply on Dec 11, 2016 2:59 PM by Tugrul_8192bit

    Does the CPU only handle one task at a time?

    wingman99

      Does the CPU only process one task at a time?

        • 1. Re: Does the CPU only handle one task at a time?
          Intel Corporation
          This message was posted on behalf of Intel Corporation

          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 Intel® Hyper-Threading Technology that enables the Intel® Core™ processors to perform multiple tasks simultaneously.
           
           
          Regards,
           
          Ivan.
           

          • 2. Re: Does the CPU only handle one task at a time?
            wingman99

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

            • 3. Re: Does the CPU only handle one task at a time?
              Tugrul_8192bit

              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.

              • 5. Re: Does the CPU only handle one task at a time?
                wingman99

                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.

                • 6. Re: Does the CPU only handle one task at a time?
                  Tugrul_8192bit

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

                  • 7. Re: Does the CPU only handle one task at a time?
                    Intel Corporation
                    This message was posted on behalf of Intel Corporation

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

                    • 8. Re: Does the CPU only handle one task at a time?
                      wingman99

                      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?

                      • 9. Re: Does the CPU only handle one task at a time?
                        Tugrul_8192bit

                        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.