Dear all,
Is there any kind of standard benchmark patch which I can use to index the performance of a certain Pure Data implementation? I would like to perform the benchmark on our embedded Pure Data version.
Regards,
Dinne
www.blue-sense.com
Benchmarking Pure Data
Dear all,
Is there any kind of standard benchmark patch which I can use to index the performance of a certain Pure Data implementation? I would like to perform the benchmark on our embedded Pure Data version.
Regards,
Dinne
www.blue-sense.com
No, there is no standard patch. But to help you achieve this note there are three important branches to a Pd benchmark.
In each case create a small abstraction and replicate it as many times you can while watching the CPU usage (with both Pd internal timer and top from the shell)
This is a signal domain patch, for synthesis etc, which can be computed only using arithmetic and trig and which is presumed to execute only using registers. Something like f(t) = a1 cos (kwt +p) + a2 cos (k2wt + p2) + a3 cos (k3wt + p3)... a simple additive synthesiser.
The next test is memory intensive.
You want an abstraction that creates a $0- named array writes noise to it and reads it back out (in the signal domain). The cost of [noise] and [tabread4~] are constant and negligable so this tests the memory IO bandwidth.
The last test is for message domain computation (because this is scheduled differently). Use [until] to perform an iterative procedure like adding up a bunch of numbers or finding a square root by Newtons method.
Those three should give you a good all round indicator of how the build and processor compare to some standard like a 1GHz Intel i386.
You didn't say what the board/uC is. It may be possible to calculate the expected performance using a few metrics from that data and compare that with what you actualy see.
Use the Source.
Oops! Looks like something went wrong!