How to calculate number of clock cycles utilized in MATLAB?
8 views (last 30 days)
Show older comments
I want to know the power consumption of any image compression technique. For the reason I want to know how to calculate number of clock cycles used. Which means performance in clock cycles.
2 Comments
Debayan
on 21 Mar 2017
Hi Krishna, Were you able to calculate the number of cycles in matlab?
Thanks, Debayan
Walter Roberson
on 21 Mar 2017
Debayan, please have a look at https://www.mathworks.com/matlabcentral/answers/?term=tag%3A%22flops%22
Accepted Answer
Jan
on 9 Dec 2016
Edited: Jan
on 9 Dec 2016
You cannot count the processor cycles on modern architectures reliably anymore. The commands are pipelined inside the processor which can process several instruction simulataneously. The processor sometimes idles while it waits for data from the slow RAM or even slower harddisk. Sometimes threads are moved between cores, which takes some time also, but allows for a higher clock rate due to the reduction of the maximum temperature over all cores. If the processor runs faster in turbo mode or throttle down at overheating the total runtime of the program is affected.
So how would you define "the number of clock cycles" uniquely? What if the number of cycles is higher, but the runtime is smaller because the internal processor caches are used more efficiently? Is a code better, which uses less "cycles", but does not let the CPU run in turbo mode? What about parallelization? Is the overhead fpr distributing the work to multiple cores a disadvantage, because it increases the total number of instructions? Or do you count the "cycles" over all cores (which can run with different frequencies...)?
Even a single tic toc measurement is not reliable, because other threads have an influence on the required times for a program. A program with a high disk usage will suffer from a diligent virus scanner, if the user forgot to include Matlab in the list of excluded programs.
Counting cycles has been useful in the 90th in the times of single core processors with a fixed frequency, with tiny caches and single-threaded operating systems. Today it matters, if a multi-threaded algorithm avoids to write data to the same cacheline of 64 bytes. You cannot count this in ticks, but the code might run slower than on a single core.
After the "clock cycles" are known as a weak measurement of the performance, the power consumption is even worse: It depends on the temperature of the CPU and the efficiency of the power-supply and cooling system.
More Answers (1)
Walter Roberson
on 8 Dec 2016
You cannot really calculate that except in the case where you are using Simulink and generating VHDL (or possibly FPGA could be handled.)
See Also
Categories
Find more on Image Processing Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!