Algorithms are the essence of digital signal processing; they are the mathematical "recipes" that transform signals in useful ways. Companies developing new algorithms, or considering purchasing or licensing algorithms, often need to assess whether an algorithm will fit within their processing budget—and thereby within their cost and power consumption targets.
But estimating an algorithm's processing load can be difficult if the algorithm has not already been carefully mapped onto the target processor. Most algorithms can be formulated in many different ways, and some of these are likely to be more efficient than others on a given processor. And in some cases, small changes to the algorithm can make a disproportionate difference in the processing load, without necessarily changing the output significantly.
In one project, BDTI was contacted by a company considering the acquisition of an algorithm development firm. The company engaged BDTI to evaluate the processing load of the algorithm provider's key algorithm on two target processors, and to identify any impediments to efficient implementation of the algorithm on those processors. BDTI approached the problem systematically, applying relevant algorithm and processor experience.
First, BDTI carefully studied the instruction set, microarchitecture, and memory organization of the two target processors, identifying key attributes that would impact efficient algorithm implementations. For instance, the cache-based memory architecture of one processor was likely to introduce memory access delays. Likewise, BDTI found that while one processor allowed parallel data loads and arithmetic, the other did not.
BDTI then determined the best way to map the algorithm onto each processor. Finally, BDTI created initial optimized implementations of critical algorithm sections, and from these derived formulas to predict the algorithm's processor cycle and memory use requirements for various data set sizes.
BDTI's final report provided a detailed assessment of the algorithm's processing load for the target processors. Based on BDTI's analysis, BDTI's client was able to proceed with its acquisition, confident that the algorithm could be deployed commercially.
To learn more about BDTI's algorithm analysis services, contact Jeremy Giddings at +1 925 954 1411 or giddings@BDTI.com.